2014-04-12 32 views
-1

我在理解如何将表单过程转换为匿名(匿名)过程时遇到问题。关于在线主题或示例没有太多材料。谁能帮忙?将表单过程转换为匿名(匿名)过程

(let ((x 30)) 
    (let ((x (+ 5 25)) (y (* 5 x))) 
    (* x y 24))) 
+0

可能的重复[如何在Scheme中实现let作为lambda函数](http://stackoverflow.com/questions/5059841/how-to-implement-let-as-a-lambda-function-in-scheme ) – GoZoner

回答

1
((lambda (x) 
    ((lambda (x y) 
     (* x y 24)) 
    (+ 5 25) (* 5 x))) 
30) 
0

“没有关于这个问题的大量的材料在网上或例子。”

你试过在任何Scheme标准中查找let的定义吗?

(define-syntax let 
    (syntax-rules() 
    ((let ((name val) ...) body1 body2 ...) 
    ((lambda (name ...) body1 body2 ...) 
     val ...)) 
    ;; ignore 'named-let' 
    )) 

上述不是解决您的家庭作业问题,但了解上述将允许您解决您的家庭作业问题。

+0

这就要求OP知道如何阅读'语法规则'宏,如果他们只做101级课程,这不是他们拥有的技能。 :-P –