【问题标题】:scheme' conditional expression and evaluation order方案的条件表达式和评估顺序
【发布时间】:2013-04-18 09:40:34
【问题描述】:

思考如下表达式:

(cond (p1 (some_complex_expression1))
      (p2 (some_complex_expression2))
      (p3 (some_complex_expression3))
      ...
      (else (some_complex_expressionN)))

那些(some_complex_expressionX)s 是按需评估的吗? (即 '(some_complex_expressionX)' 仅在其自身之前的谓词 pX 为真时评估)或者,它们是否遵循应用顺序(在尝试谓词之前以某种方式尽可能多地评估它们)

如果那是依赖于实现的,那么下面的实现呢?

mit-scheme
guile
racket
that scheme for sicp
r5rs

【问题讨论】:

    标签: scheme racket


    【解决方案1】:

    在评估关联的表达式之前,测试必须返回一个真值。这是由计划标准保证的;例如,参见section 4.2.1 of R5RS

    【讨论】:

      【解决方案2】:

      有关 Racket 的详细信息,请参阅Reference Manual。对于这个问题,您是在询问cond 的语义;那里的文档详细介绍了在什么条件下评估或不评估什么。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-16
        • 2015-02-22
        相关资源
        最近更新 更多