2

次のテストは拒否されます。

CL-USER> (apply 'and '(t t t))
; Evaluation aborted on #<CCL::CALL-SPECIAL-OPERATOR-OR-MACRO #x3020013A1F3D>

私の最初の応答は、特殊演算子の呼び出しをラムダにカプセル化するandか、独自の定義を定義しようとしていましたが、もちろんそれは機能しません。apply&restパラメーターで関数を呼び出すことになりますので'and...この問題にどのように取り組みますか?

4

1 に答える 1

6

代わりに、関数EVERYを使用してください。

(every #'identity '(t t t))  -> t

特別な演算子を適用することはできません。

次の解決策:

(reduce (lambda (a b) (and a b))
        '(t t t)
        :initial-value t)

リスト操作にはAPPLYを使用しないでください。REDUCEを使用します。

于 2012-04-22T15:28:55.917 に答える