如何使用折叠权限在Scheme中映射两个列表?

如何使用折叠权限在Scheme中映射两个列表?,scheme,racket,Scheme,Racket,我正在寻找一种只使用foldr映射两个不同列表项的方法 (map-Using-FoldR '( 1 2 3 4) '( w x y z)) 应该回来 '((1 w) (2 x) (3 y) (4 z)) 或者换句话说,使用foldr执行“映射”命令 可能吗? 谢谢 基本上,您希望在foldr方面实现zip过程: (define (zip lst1 lst2) (foldr (lambda (e1 e2 acc) (cons (list e1 e2) acc)) '()

我正在寻找一种只使用foldr映射两个不同列表项的方法

(map-Using-FoldR '( 1 2 3 4) '( w x y z))
应该回来

'((1 w) (2 x) (3 y) (4 z))
或者换句话说,使用foldr执行“映射”命令 可能吗?
谢谢

基本上,您希望在
foldr
方面实现
zip
过程:

(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))

基本上,您希望按照
foldr
实现
zip
过程:

(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))

@user1322801这篇文章回答了你的问题吗?我能改进一下吗?如果一切正常,那么请不要忘记,只需单击左侧的复选标记;)@user1322801这篇文章回答了你的问题吗?我能改进一下吗?如果一切正常,那么请不要忘记,只需单击左侧的复选标记;)