【问题标题】:Converting Let Form procedure into Unnamed (anonymous) procedure将 Let Form 过程转换为未命名(匿名)过程
【发布时间】:2014-04-12 01:58:54
【问题描述】:

我在理解如何将 Let Form 过程转换为未命名(匿名)过程时遇到问题。网上没有太多关于这个主题的材料或例子。有人可以帮忙吗?

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

【问题讨论】:

标签: scheme racket


【解决方案1】:
((lambda (x)
   ((lambda (x y)
      (* x y 24))
    (+ 5 25) (* 5 x)))
 30)

【讨论】:

    【解决方案2】:

    “网上没有太多关于该主题的材料或示例。”

    您是否尝试在任何 Scheme 标准中查找 let 的定义?

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

    以上内容不能解决您的作业问题,但了解以上内容将帮助您解决作业问题。

    【讨论】:

    • 这要求 OP 知道如何阅读 syntax-rules 宏,如果他们只是做 101 级课程,这不是他们所具备的技能。 :-P
    猜你喜欢
    • 2015-01-10
    • 2012-04-18
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多