我正在寻找一种仅使用foldr
映射两个不同列表项的方法(map-Using-FoldR '( 1 2 3 4) '( w x y z))
应该返回
'((1 w) (2 x) (3 y) (4 z))
或换句话说 - 使用foldr的“map”命令实现 可能吗? 谢谢!
答案 0 :(得分:5)
基本上,您希望根据zip
实施foldr
程序:
(define (zip lst1 lst2)
(foldr (lambda (e1 e2 acc) (cons (list e1 e2) acc))
'()
lst1
lst2))
例如:
(zip '(1 2 3 4) '(w x y z))
=> '((1 w) (2 x) (3 y) (4 z))