map
値のリストをテストして、特定のプロパティがあるかどうかを確認するために使用しています。次に、それらすべてがそのプロパティを持っているかどうかを確認し、すべて持っている場合は返しtrue
ます。
したがって、私の最初のアイデアはand
、リストをとして与えることでした(and (list #t #t #f))
が、それは全体(#t #t #f)
をブール値trueとして扱い、それを返すようです。
だから、私は使用できると思いましfoldl
た。私はそれがうまく(foldl + 0 (list 1 2 3))
いくはずだと思った作品を知って(foldl and #t (list #t #t #f))
います...しかしそれはそうではありません。
DrRacket(を使用#lang racket
)ではエラー " "が発生and: bad syntax in: and
しますが、これはあまり役に立ちませんが、Repl.it(BiWaSchemeを使用)ではエラー" Error: #<Syntax and> is not a function
"が発生します。
だから、それand
はマクロだと思いますか?これをサポートするのは、+
私が取得したと評価した場合のようです#<procedure:+>
が、and
取得した場合and: bad syntax in: and
(厳密にxor
は、手順ですがor
、、ではnor
ありnand
ません)。
それで、それはマクロか何か(おそらく短絡を容易にするため)ですか?もしそうなら、「and」演算を実行するブール関数は何ですか?