2009-10-26 103 views
13

在今天xkcd site,下面出現了一個笑話在< SCRIPT LANGUAGE =「方案」 >標籤這個xkcd代碼是做什麼的?

那麼,是什麼下面的代碼做/代表什麼?

(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)))) 
+0

喜歡onHover選項 – Tom 2009-10-26 17:28:54

+0

找到原始(永久)這個XKCD頁的任何機會呢? – 2016-01-04 07:44:45

回答

20

它本質上是一個簡單的解釋,如果你認爲所有必要的方法填充。

+12

這是SICP居多,4.1自循環直譯器 – 2009-10-26 18:38:06

+1

澄清:這正是除了錯誤消息SICP 4.1代碼。 – Bill 2009-11-04 22:30:51