2012-04-01 4 views
0

まあ、私は関数リストの要素を使用しようとしています。しかし、私は自分のコードでそれを使用する問題があります。スキームリスト構造

(func(list 1 2 3))私はlist1のsum要素をmy list2に適用しようとしています。 sumはlistを引数として取ります。私はちょうど試みのためにlist1の1つの機能を取った。しかし

(display (car list1)) --> sum 
    (display list2)--->(1 2 3) 
    (display (list (sum list2)))--->(6) 
    (display ((car list1) list2))---> ERROR 

ERROR:関数呼び出し:開き括弧の後に機能を期待したが、受け取った「合計

それは、このエラーを与えるんなぜ私が理解することはできません。あなたが見るように(car list1)はsumを指し、list2は(1 2 3)llpistを指します。

私は何かが間違っているかどうか教えていただけますか?どうも。私たちは、sumの実装とあなたがリストを作成している正確な方法を参照してくださいする必要があり

答えて

0

は、私はあなたがsum'sumない手順をシンボルを渡していることを推測しています。私が次のことを試してみると、報告している問題なしでうまくいきます。

; this is guesswork, OP didn't provide enough information 
(define sum (lambda (lst) (apply + lst))) 
(define list1 (list sum)) 
(define list2 (list 1 2 3)) 

(display (car list1)) 
(display list2) 
(display (list (sum list2))) 
(display ((car list1) list2)) ; this works for me 
+0

そうですね。プロシージャの合計にどのように変更できますか? –

+0

私は私の答えでやったように。また、関連するすべてのコード( 'sum'の実装、' list1'と 'list2'の定義)で質問を更新する必要があります。そうでなければ、何が起こっているのか_guess_できます。 –

+0

ええ、私は私の問題を解決しました。ありがとう、オスカー=) –