2016-11-04 16 views

答えて

6

あなたは

(map (λ (xs) (match xs [(list a b) (* a b)])) 
    '((1 2) (3 4))) 

パターンマッチングを使用することができます...それとも、 mapを使用して、サブリストにを適用するラムダ

(map (λ (xs) (apply * xs)) 
    '((1 2) (3 4))) 

...それとも、ループが "という名前レット" と書くことができラムダ

(map (curry apply *) '((1 2) (3 4))) 
+0

excelent :) パターンマッチングのリソースをお勧めしますか? とカレーラインについて説明しますか? – X10D

1

を置き換えるためにcurryを使用することができます。

(define (f l) 
    (let loop ((l l) 
      (ol '())) 
    (cond 
     [(empty? l) (reverse ol)] 
     [else (loop (rest l) 
        (cons (apply * (first l)) ol))]))) 

(f '((1 2) (3 4))) 

が出力:

'(2 12) 
関連する問題