list - Haskell 任何人都可以通过示例解释deleteFirstsBy 函数如何工作吗?

标签 list haskell

我正在寻找有关 Hoogle 的一些文档有一个函数叫 deleteFirstsBy带有此签名:

deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]

解释说:

The deleteFirstsBy function takes a predicate and two lists and returns the first list with the first occurrence of each element of the second list removed.

不太明白什么意思。谁能给我举个例子吗?

最佳答案

文档不是很清楚,但是看了deleteBy的描述后,意思应该更清楚了。

假设我们有

deleteFirstsBy eq [x1,...,xn] [y1,...,ym]

然后,我们采用 y1 并尝试将其从 xs 中删除,使用 eq 作为我们的相等谓词。具体来说,我们搜索一些i,使得eq y1 xi为真。如果没有,我们什么都不做。如果至少有一个,我们将删除找到的第一个这样的 xi(具有最小 i 的那个)。

然后,我们从剩余的 xs 列表中删除 y2(现在可能少了一个元素)。对于每个 yj 依此类推。

关于list - Haskell 任何人都可以通过示例解释deleteFirstsBy 函数如何工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45892008/

相关文章:

java - 如何使用java添加collections.Frequency中的所有值以获取重复单词

java - 序列化包含对象 ArrayList 的对象

java - 有没有办法使用java流来比较两个字符串?

Haskell - 退出带有指定错误代码的程序

haskell - Haskell 的 "tail"函数的时间复杂度是多少?

haskell - 如何在 Yesod 中禁用 GET 注销?

haskell - 保证类型家族会派生某些类

python - 将字母 append 到python列表中每个字符串的末尾

Haskell Data.Map Lookup 不查找所有值

c# - 从列表中获取变量列表(使用 Linq?)