关于名称的Haskell

时间:2018-10-09 09:35:26

标签: haskell

在Haskell中,有一个takeWhile函数可以在满足特定条件时获取项目。

我的问题更多是语法。

为什么函数不叫filterWhile,而是叫takeWhile

是否有任何论点,或者他们只是做出了这个决定。

2 个答案:

答案 0 :(得分:3)

标准filter函数查找 all 满足谓词的元素。

takeWhile函数查找直到 first 失败为止满足谓词的元素,然后停止查找。

takeWhile 接受元素直到它们停止匹配,而dropWhile 丢弃元素直到它们停止匹配。

这一切都有道理。

filter除外,可以将其命名为select,但这是另一个故事……)

答案 1 :(得分:2)

如果您将每个元素返回到某个特定点,则不会将它们过滤到某个特定点。在此之前,没有进行任何过滤。一切都返回了。最好将其称为everythingWhile,而不是filterWhile

比喻,关闭水龙头与过滤水不同。另一方面,您可以取水,直到水变了。