0

だから、リストのサブリストを追加しようとしています。たとえば、次のようなものがあるとします。

(add-pair '((1 4) (2 1)))

これを返したい:

(5 3)

これは私がこれまでに持っているものです:

(define pair-additions
  (lambda (ls)
    (map
      (lambda (n)
        (+ (car n) (cdr n)))ls)))

現在、入力が数値ではないというエラーが表示されています。誰でも私を助けることができますか?

4

1 に答える 1

0

あなたはほとんどそれを手に入れました!ここに問題があります:

(+ (car n) (cdr n))

リストの 2 番目の要素を取得するには、 だけでなく、 の を取得する必要がcarありcdrますcdr。上記の行を次のように変更します。

(+ (car n) (car (cdr n)))

または、これは前の行の短い形式です。

(+ (car n) (cadr n))

または、これは読みやすいです(Schemeインタープリターでサポートされている場合):

(+ (first n) (second n))

上記はすべて同等です。

于 2013-03-05T03:36:46.307 に答える