例如,有人想使用Fold
函数来实现unique
(或DeleteDuplicates
)函数,该函数接受1维数组并返回相同但更短的数组。我反对它,但我无法在任何维基百科中找到证据,为什么这是一个不好的做法。
答案 0 :(得分:0)
如果你看看各种Haskell折叠的the types:
foldr :: (a -> b -> b) -> b -> [a] -> b
foldl :: (b -> a -> b) -> b -> [a] -> b
你可以清楚地看到这样的事情完全合法 - 只需用[a]
代替b
。
事实上,在这些类型中使用的core libraries折叠中有几个例子。甚至有一些例子,使用折叠来增加“维数”。
你为什么反对?