リストCommon Lispコマンド applyについて
CL-USER> (mapcar #'car '((1 2 3 4)(5 6 7 8)))
(1 5)
CL-USER> (apply #'append '((1 2 3 4)(5 6 7 8)))
(1 2 3 4 5 6 7 8)
CL-USER> (apply #'car '((1 2 3 4)(5 6 7 8)))
APPLY: too many arguments given to CAR
[Condition of type SYSTEM::SIMPLE-PROGRAM-ERROR]
上記の評価「(apply #'car '((1 2 3 4)(5 6 7 8)))」について、
評価結果が(1 2 3 4)になると予想したのですが、上記の通りcarコマンドに対する
エラーになってしまいます。
いまいち、applyコマンドの使い方が理解できていません。
applyの引数はリストでなければならないので、'((1 2 3 4)(5 6 7 8))で問題
ないと思っているのですが、何が問題なのでしょうか。。。
applyによって
(car '(1 2 3 4))
(car '(5 6 7 8))
と分解される?
2つに分解されるからapplyの戻り値として多すぎる?
正直こんがらがっています。
識者の方、理解のお手伝いをお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/20 08:45
2017/09/20 12:49