私は特別な機能「または」スキームには約この質問を発見した:スキームに「または機能」を定義できないのはなぜですか?
ジョーハッカーがそこには理由があるんやスキームに特別にする必要があることを声高に述べて - それはちょうど、プログラマによって定義することができ、このように:
(define (or x y) (if x #t y))
ジョーは正しいですか?
私はそれができないはずがない理由を理解できません。
いくつかのスキーム - エキスパートがこれを動作させるかどうかを説明してください。
Schemeを学ぶためにあなたが使っている本が分からないので、[Scheme言語の仕様](http://www.r6rs.org/final/html/r6rs/r6rs-ZH)に行っていました。 -14.html#node_sec_11.4.5)。が存在しない場合は#fが返され、それ以外の場合はの式が左から右に評価され、が真の値val(5.7節を参照)を返すか、最後のに到達します。または式は残りの式を評価せずにvalを返します。後者の場合は、最後の式が評価され、その値が返されます。ジョーの「または」機能はこのように機能しますか? –
http://www.cs.washington.edu/education/courses/cse341/99wi/scheme/mini-exercises.html –
ちなみに、それはプログラマによって定義できますが、単純な関数としては定義できません。それは特定の特別な値のために特別ではありません。 http://www.scheme.com/tspl4/further.html#defn:or – erjiang