- Atronix REBOL 3 View Download : Permite baixar versões para Linux (32 e 64 bits), Windows (32 e 64 bits) e Linux (Arm v7) que é bom para o ODROID. Também existem links para baixar os fontes se alguém deseja compilar. Os programas compilados possuem a GUI (não é uma IDE, apenas um dialeto de REBOL chamado VID que permite a criação de janelas, botões, etc., ). O que utilizo foi baixado daqui.
- Saphirion : Com versões (32bits) para Windows, OSX, Linux e Android.
- Rebol 3 Binaries (Unofficial) : Os executáveis desta página são compilados diretamente do repositório oficial do REBOL e não possuem GUI. A quantidade de plataformas é bem interessante. Existe ara o Linux x86, OSX x86, Win32 x86, Android ARM, Haiku (inspirado no BeOS), Linux ARMsf, Linux ARMhf, Linux x64 e OSX PPC
Depois de baixar, não é necessário instalar. O REBOL pode ser executado de qualquer lugar. É claro que colocando no path e ajustando algumas variáveis facilita a vida.
Para testes não é necessário um editor já que os comandos podem ser digitados diretamente no console e o resultado é mostrado imediatamente. Como o R3 não permite que o comando seja quebrado em diversas linhas, para fazer algum laço ou coisas mais complexas, utilize o editor de sua preferência. Muitos permitem salientar a sintaxe e outras facilidades.
Considerações iniciais.
- Para sair do ambiente, digite quit e não exit.
- O delimitador é espaço portanto, 2 + 2 retorna 4 mas 2+2 retorna um erro.
- Todo o arquivo que contenha um programa deverá possuir um cabeçalho no início. Podemos, por exemplo, definir uma versão e outros programas poderão acessar posteriormente para diversas finalidades. Por hora podemos ter uma cabeçalho simples como:
REBOL [Title: "Título do script"]
- Para obtermos informações sobre funções, um bom local é o REBOL Quick Reference Card. Se estivermos no ambiente interativo do console, podemos obter informações sobre qualquer função digitando help <função> (o help pode ser substituído por ? ).Se digitamos >> help loop (o >> é o prompt e não é digitado) obtemos:
USAGE:
LOOP count block
DESCRIPTION:
Evaluates a block a specified number of times.
LOOP is a native value.
ARGUMENTS:
count -- Number of repetitions (number!)
block -- Block to evaluate (block!)
Então, o uso de LOOP requer dois parâmetros. Um count que é o número de repetições e um block que é um bloco (já veremos) que será executado em cada repetição.
- Blocos são delimitados por colchetes [ e ] e podem conter dados e/ou código e/ou outros blocos. Uma linha do tipo
loop 5 [print 3]
irá imprimir o número três cinco vezes.- Apesar de variável ser um termo que não corresponde a realidade em REBOL, podemos definir uma variável escrevendo seu nome seguido de dois pontos e sem espaço. Por exemplo,
lista: [1 2 3 4 5]
poderia significar que atribuímos uma array unidemensional a uma variável lista. Mas está mais para dizer que a palavra lista está associaida a um bloco contendo dados numéricos de 1 a 5. Ficamos por aqui hoje. Depois tem mais. Um pequeno código (poderia ser escrito em uma linha) para ler uma determinada página e extrair todos os links:
1 parse to-string read http://www.rebol.com [
2 any [thru "A HREF=" copy link to ">" (print link)] to end]
3
Sim, não é preciso baixar ou instalar nada no ambiente para executar a tarefa. Tudo foi feito pelo parse e read. A função read pode ler dados de um arquivo, porta ou url. Se o arquivo for um diretório, retorna uma lista com todos os arquivos e sub-diretórios existentes. Como REBOL não trabalha com ER, parse é a resposta em REBOL para expressões regulares. Com tal, sua explicação seria suficiente para um livro.
Informações sobre read:
USAGE:
READ source /part length /seek index /string /lines
DESCRIPTION:
Read from a file, URL, or other port.
READ is an action value.
ARGUMENTS:
source (port! file! url! block!)
REFINEMENTS:
/part -- Partial read a given number of units (source relative)
length (number!)
/seek -- Read from a specific position (source relative)
index (number!)
/string -- Convert UTF and line terminators to standard text string
/lines -- Convert to block of strings (implies /string)
Informações sobre parse (para maiores detalhes sobre rules, melhor acessar a página do parse). Pessoalmente acha mais legível (alguns acham mais poderoso mas não vou entrar no mérito) que trabalhar com ER, apesar da maior verbosidade.
USAGE:
PARSE input rules /all /case
DESCRIPTION:
Parses a string or block series according to grammar rules.
PARSE is a native value.
ARGUMENTS:
input -- Input series to parse (series!)
rules -- Rules to parse by (none = ",;") (block! string! char! none!)
REFINEMENTS:
/all -- For simple rules (not blocks) parse all chars including whitespace
/case -- Uses case-sensitive comparison
Nenhum comentário:
Postar um comentário