2
我正在努力學習計劃。我的問題是如何在不使用「或」的情況下在方案中實現「或」兩個元素。我試圖這麼(id (!A) B A
但我得到A
兩次,任何人有不同的想法?我如何以不同的方式實施「或」計劃
我正在努力學習計劃。我的問題是如何在不使用「或」的情況下在方案中實現「或」兩個元素。我試圖這麼(id (!A) B A
但我得到A
兩次,任何人有不同的想法?我如何以不同的方式實施「或」計劃
標識符or
是一個語法關鍵字(aka'語法'),因此具有特殊的評估規則。 (以「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
。]