2011-10-29 8 views
1

リストのリストがある場合は、リストの最初の部分にどのようにアクセスしますか?最初のリストの残りの部分で再帰をどのように実行しますか? (ラケット)

あなたは

(define l1 (list (list (list 1 1) (list 2 3) (list 7 8)) 
      (list (list 2) (list 3 4 5)))) 

を持っている場合、私は(rest (first l1))

例えばをしようとするとどのようにこの部分

(list (list 1 1) (list 2 3) (list 7 8)) 

に再帰を実行することになり(map add1 (rest (first l1))

は、私はエラーadd1: expects a number; given (list 2 3)

+0

質問に表示されているエラーを追加できますか? –

答えて

2

あなたはコード

(rest (first l1)) 

は、リストの最初の残りの部分を生成することを正確に正しいを取得します。具体的に:

(define l1 (list (list (list 1 1) (list 2 3) (list 7 8)) 
      (list (list 2) (list 3 4 5)))) 

(rest (first l1)) 

は、彼らが数字じゃないので、それはあなたが一緒にこのリストの要素を追加することはできませんというのは本当だ

(list (list 2 3) (list 7 8)) 

を生成します。

これはあなたの質問にお答えしますか?