zipWith函数使用Map和Zip函数实现

Wal*_*rty -1 syntax haskell list syntax-error

我试图zipWith通过zipmap函数实现该函数,但是我收到的错误是:"错误:解析错误输入'::'我的代码在下面,而且我不确定我做错了什么

zipWith` :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith` f x y = zip x $ map f y
Run Code Online (Sandbox Code Playgroud)

Dam*_*ero 8

你必须使用'符号而不是`; 然后,结合您需要使用的功能uncurry:

zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith' f xs ys  = map (uncurry f) (zip xs ys)
Run Code Online (Sandbox Code Playgroud)

为什么这样,那种类型zip是:

zip :: [a] -> [b] -> [(a, b)]
Run Code Online (Sandbox Code Playgroud)

但功能ff :: (a -> b -> c),那么,的帮助下uncurry,

uncurry :: (a -> b -> c) -> (a, b) -> c
Run Code Online (Sandbox Code Playgroud)

你可以将函数映射f[(a, b)],将其转换为[c].