これには少し問題があります。基本的に、comb
2 つのリストを受け取って(comb '(a b c) '(1 2 3)
を返すプロシージャが必要('a 1)('b 2)('c 3)
です。最初のペアを返すタラの一部を思いついた
(define some-letters '(a b c))
(define some-nums '(1 2 3))
(define x (first (foldr cons empty some-letters)))
(define y (first (foldr cons empty some-nums)))
(define (comb list1 list2)
(cond
[(empty? list1) empty]
[(empty? list2) empty]
[else (list x y)]))
comb
ここで、もう少しいじくり回して、少し異なる定義を思いつきました。
(define (comb list1 list2)
(cond
[(empty? list1) empty]
[(empty? list2) empty]
[else ((list x y) (zip (rest list1) (rest list2)))]))
しかし、これは以下を返します:
function call: expected a function after the open parenthesis, but received (list 'a 1)
ご協力いただければ幸いです。