Haskell - 使用列表理解编写zip函数

Dia*_*ana 2 haskell

我的问题是我想编写一个使用列表推导来压缩2个列表的函数.到目前为止我写了这个:

import Data.List
zip' xs ys = [(x,y)| x <- xs, y <- ys, elemIndex x xs == elemIndex y ys]
Run Code Online (Sandbox Code Playgroud)

但它不起作用

zip' [1,2,2,3,2] [1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

有什么想法我应该如何修改它?

Ale*_*nov 9

为此需要并行列表推导(见7.3.12).实际上,这正是手册中给出的示例:

[ (x, y) | x <- xs | y <- ys ]
Run Code Online (Sandbox Code Playgroud)