quinta-feira, 3 de maio de 2007

2 Questões sobre Scheme

1) Se o Common Lisp é bloated porque todo mundo acaba criando a sua própria biblioteca de rotinas para complementar ele?

2) Os sistemas de macros do schema são mais seguros mas permitem fazer anaphoric macros?

Um comentário:

namekuseijin disse...

1. isso se chama flexibilidade. ;)

2. sim, todos os Lisps são capazes de moldar a sintaxe ao problema, caso contrário não são Lisp.

aqui está seu aif de alguns posts acima, em Scheme:

(define-syntax aif
(syntax-rules ()
((aif test then else)
(eval `(let ((answer ,test))
(if answer then else))))))

(define (fact n)
(define (tailfact i res)
(if (= 0 i) res
(tailfact (- i 1) (* i res))))
(tailfact n 1))

(display (aif (> (fact 20) 100)
answer
"not"))
(newline)

se bem que, verdade seja dita, as macros higienicas aqui estão sendo usadas apenas como proxy para a avaliação e expansão de uma quasiquotation... :P

;; namekuseijin from nospamgmail.com