gpt4 book ai didi

list - 使用列表理解重写 zipWith 函数

转载 作者:行者123 更新时间:2023-12-03 09:19:46 28 4
gpt4 key购买 nike

我已经使用递归重写了 zipWith 函数,现在我尝试使用列表理解重写它。我遇到了很多绑定(bind)错误,并且我知道我的第二行不正确。这是我的函数,它的工作原理类似于使用递归的 zipWith:

zipW :: (a -> b -> c) -> [a] -> [b] -> [c] 
zipW _ [] _ = []
zipW _ _ [] = []
zipW f (x:xs) (y:ys) = f x y : zipW f xs ys

这是我尝试将其重写为列表理解:

zipW2 :: (a -> b -> c) -> [a] -> [b] -> [c]
zipW2 f xs ys = [f x y | (x, y) <- zipW2 f xs ys]

我不知道如何更正第二个语句,使其像 zipWith 一样工作并允许我选择运算符。

最佳答案

您将需要Parallel List Comprehensions扩展名:

{-# LANGUAGE ParallelListComp #-}

zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith' f xs ys = [f x y | x <- xs | y <- ys]

关于list - 使用列表理解重写 zipWith 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684201/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com