Soy un novato Haskell, aunque tenía una experiencia anterior de Lisp/Scheme. En este momento estoy viendo los ejemplos del SICP y tratando de implementarlos en Haskell para obtener más experiencia práctica. En la conferencia 3b, los autores presentan una función para calcular simbólicamente los derivados. Contiene, entre otras, las siguientes líneas:Examinando las partes internas de las funciones en Haskell
(define (deriv exp var)
(cond ((constant? exp var) 0)
((same-var? exp var) 1)
; ...
Además, en la conferencia, algunas de las funciones más se definen:
(define (constant? exp var)
(and (atom? exp)
(not (eq? exp var))))
¿Hay una manera de hacer lo mismo en Haskell, es decir, comprobar si hay atomicidad y equivalencia simbólica a alguna otra función? O más general, ¿cuáles son los medios para "desmontar" las funciones en Haskell?
¿Qué hay de la evaluación de sus datos Exp (por lo que yo entiendo, esto es en última instancia, una lista)? –
En realidad, no necesitaba una función eval; Estaba usando diferenciación simbólica para emitir código C. Si quieres escribir uno y tienes problemas, publica una pregunta :-) –