Domanda
Sul sito xkcd oggi, il seguente è apparso come uno scherzo in < linguaggio di script = " schema " > tag
quindi cosa rappresenta / rappresenta il seguente codice?
(define
(eval exp env)
(cond ((self-evaluating? exp) exp)
((variable? exp)
(lookup-variable-value exp env))
((quoted? exp)
(text-of-quotation exp))
((assignment? exp)
(eval-assignment exp env))
((definition? exp)
(eval-definition exp env))
((if? exp)
(eval-if exp env))
((lambda? exp)
(make-procedure
(lambda-parameters exp)
(lambda-body exp) env))
((begin? exp)
(eval-sequence (begin-actions exp) env))
((cond? exp)
(eval (cond->if exp) env))
((application? exp)
(apply (eval (operator exp) env)
(list-of-values (operands exp) env)))
(else (error "Common Lisp or Netscape Navigator 4.0+ Required" exp))))
Soluzione
È essenzialmente un semplice interprete, se si presume che tutti i metodi richiesti siano compilati.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow