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 に答える