Sintaxe Padrão

Abstrações sintáticas são implementadas para tornar o código mais compreensível. Chamadas abstraídas podem receber até 3 parâmetros e ser aninhadas dentro de outras chamadas.

Definição Formal

prelude-call ::= @<ident> { <expr> [, <expr> [, <expr> ] ] }

Exemplos

Vamos imaginar que queremos realizar a seguinte operação:

  • Criar uma lista com os elementos de 1 a 50; @{}
  • Obter os 20 primeiros elementos desta; @Take
  • Mapear e dobrar o valor de cada elemento obtido; @Map
  • Mostrar ao usuário cada elemento em um Alert. @Each

Devemos fazer:

1
2
3
4
5
6
7
#include "prelude.ch"

Function Prelude()
   @Each { Fun (X) -> Alert( X ), ;
      @Map { Fun (Y) -> Y * 2, ;
         @Take { 20, @{ 1 .. 50 } } } }
   Return 0