【发布时间】:2018-08-03 22:41:13
【问题描述】:
map2_List :: (a -> b -> c) -> [a] -> [b] -> [c]
map2_List f [] _ = []
map2_List f (a:as) bs = map (f a) bs ++ map2_List f as bs
这是我讲座中的一个示例,它尝试将二进制函数应用于两个列表的所有元素对。 (f a) 部分让我很困惑。它是否假设是一个值而不是一个函数?那么map value bs 是做什么的呢?
【问题讨论】:
-
仔细查看类型。
f是a -> b ->c类型,所以f a是b -> c类型的值。 -
哇,明白了,谢谢!
标签: haskell higher-order-functions map-function partial-application