2

我正在尝试学习计划。我的问题是如何在不使用“或”的情况下在方案中使用 2 个元素来实现“或”。我试过了,(id (!A) B A但我得到A了两次,有人有不同的想法吗?

4

1 回答 1

0

标识符or是句法关键字(又名“语法”),因此具有特殊的评估规则。(就像'C' - 语法是特殊的。)要实现or你需要定义它的语法:

(define-syntax or
  (syntax-rules ()
    ((or a b)
     (let ((a-evaled a))    ;; only eval 'a' once
       (if a-evaled a-evaled b)))))

[请注意,“语法”通常不是初学者的主题。但是,您需要or.]的语法

于 2013-10-17T18:43:02.600 回答