【问题标题】:Is it OK to use Fold without reducing number of dimensions?在不减少维度数量的情况下使用折叠是否可以?
【发布时间】:2013-11-26 09:40:24
【问题描述】:

例如,想要使用Fold 函数来实现unique(或DeleteDuplicates)函数,该函数接受一维数组并返回相同但更短的数组。我反对它,但我在任何维基百科中都找不到证据,为什么这是一种不好的做法。

【问题讨论】:

  • 为什么你认为这是一个不好的做法?
  • 很多东西都可以用 fold 来实现。这是一个令人难以置信的通用功能。无论如何,在自然适合的地方使用它。

标签: types functional-programming dimensions fold


【解决方案1】:

如果您查看各种 Haskell 折叠的 the types

foldr :: (a -> b -> b) -> b -> [a] -> b

foldl :: (b -> a -> b) -> b -> [a] -> b

您可以清楚地看到这样的事情是完全合法的——只需将[a] 替换为b

确实,core libraries 中有几个用于此类类型的折叠示例。甚至还有使用折叠来增加“维数”的示例。

你为什么反对它?

【讨论】:

    猜你喜欢
    • 2016-05-24
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 2014-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    相关资源
    最近更新 更多