Usando seita e slots no Esquema
Estou tentando aprender os primórdios do FP, com a ajuda de "Algoritmos para Programação Funcional". No capítulo 2, o escritor apresenta as palavras sect
- <>
chave e . Um dos procedimentos do livro seria:
(define add1 (sect + <> 1))
Usei Repl.it para calcular o procedimento. Mas, infelizmente, gera o seguinte erro:
Error: execute: unbound symbol: "<>" []
Então eu tentei Racket, porque li aqui Repl.it usa BiwaScheme que não suporta totalmente nenhum padrão Scheme. Mas então recebi outro erro:
sect: undefined;
cannot reference an identifier before its definition
Então, estou fazendo algo errado? Ou há outro editor / IDE que devo usar?
Respostas
Eu estava errado, ambos sect
e <>
não são palavras-chave do Scheme. No prefácio é mencionado que o autor usa a (afp primitives)
biblioteca para procedimentos primitivos e extensões de sintaxe. Ao usar esta biblioteca, você obtém vários procedimentos extras à sua disposição.
Você pode baixá-lo aqui .
O Racket vem com uma add1função; não há necessidade de definir o seu próprio.
E suporta SRFI-26 cut
, que é o que sect
parece ser por outro nome mais comum:
> (require srfi/26)
> ((cut + 1 <>) 2)
3