Red + Ruby = Reby ou Rud ?

Como todos sabem, ou não, a próxima versão de Red traz #macros. No primeiro formato, é apenas um nome seguido de uma função e seus respectivos parâmetros. Neste caso, a macro irá avaliar a função e trocará o nome e seus parâmetros pelo resultado. No segundo formato, baseado em um padrão definido, o usuário poderá alterar o código para um novo formato (meio estilo Lisp). É interessante pois é uma outra forma de criação de dialetos em Red. Um usuário que gosta de Ruby e Python resolveu colocar o seguinte exemplo na lista:

Para repetir um trecho um determinado número de vezes em Red, utilizamos loop. Fica algo como:

loop 10 [
    print "Hello"
]

A macro acima permite que se crie um dialeto possibilitando a mesma construção  utilizada em Ruby, ou seja:

10 times [
    print "Hello"
]

Basicamente inseriu loop no início, incluiu a primeira parte do código start/1 que é o número 10, pulou a segunda parte start/2 que é o times e incluiu o bloco que é a terceira parte.

Possibilidades? Fica por conta da sua imaginação.  Como a linguagem ainda é beta, provavelmente #macros sofrerão algumas alterações no decorrer do desenvolvimento. Ainda não sei quando, como e onde utilizar #macros e parser para a criação de dialetos, isto é, qual a melhor situação para a utilização de um ou outro ou os dois simultaneamente. Muita coisa para a minha cabecinha. 😀

Anúncios