在Haskell中,有一个takeWhile
函数可以在满足特定条件时获取项目。
我的问题更多是语法。
为什么函数不叫filterWhile
,而是叫takeWhile
。
是否有任何论点,或者他们只是做出了这个决定。
答案 0 :(得分:3)
标准filter
函数查找 all 满足谓词的元素。
takeWhile
函数查找直到 first 失败为止满足谓词的元素,然后停止查找。
takeWhile
接受元素直到它们停止匹配,而dropWhile
丢弃元素直到它们停止匹配。
这一切都有道理。
(filter
除外,可以将其命名为select
,但这是另一个故事……)
答案 1 :(得分:2)
如果您将每个元素返回到某个特定点,则不会将它们过滤到某个特定点。在此之前,没有进行任何过滤。一切都返回了。最好将其称为everythingWhile
,而不是filterWhile
。
比喻,关闭水龙头与过滤水不同。另一方面,您可以取水,直到水变了。