各サブリストの製品を取得するには?schemeまたはracketの各サブリストに関数を適用するにはどうすればよいですか?
(apply map * '((1 2) (3 4)))
それが返されます: が試さ '(3 8) それは返す必要がありながら'(2 12)
各サブリストの製品を取得するには?schemeまたはracketの各サブリストに関数を適用するにはどうすればよいですか?
(apply map * '((1 2) (3 4)))
それが返されます: が試さ '(3 8) それは返す必要がありながら'(2 12)
あなたは
(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)))
excelent :) パターンマッチングのリソースをお勧めしますか? とカレーラインについて説明しますか? – X10D
を置き換えるために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)
てみてください( ' map(curry apply *) '((1 2)(3 4))) 'を使用します。 –
thx :) しかし、どのように機能しますか? :) – X10D