On Wed, Jul 22, 2009 at 09:13:31AM -0300, Andre Fernandes wrote:
> Oi,
> 
> Ainda sou um pouco inexperiente em Lisp, e tentei rodar o código mostrado
> pelo Alan no common lisp (apenas trocando 'define' por 'defun'), contudo não
> funcionou.
> 
> É possível fazer esse código funcionar no common lisp? Ou isso é uma
> característica específica do Scheme?

O conceito existe em CL, mas sua expressão é um pouco diferente.

> O código que tentei rodar foi:
> (defun a-plus-abs-b (a b)
>      ((if (> b 0) + -) a b))
> Mas não tive sucesso algum.

(defun a-plus-abs-b (a b) 
  (funcall (if (> B 0) #'+ #'-) A B))

Em CL existe o "funcall" que chama uma função f com argumentos a1, 
a2, ...:

(funcall #'f a1 a2 ...) == (f a1 a2 ...)

J.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lisp-br" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/lisp-br?hl=en
-~----------~----~----~----~------~----~------~--~---

Responder a