Usando seita e slots no Esquema

Dec 18 2020

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

2 JacobvanLingen Dec 18 2020 at 20:53

Eu estava errado, ambos secte <>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 .

1 Shawn Dec 19 2020 at 08:34

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 sectparece ser por outro nome mais comum:

> (require srfi/26)
> ((cut + 1 <>) 2)
3