Function 这在哈斯克尔有什么用?

Function 这在哈斯克尔有什么用?,function,haskell,Function,Haskell,我想知道这行是如何工作的,这是一个函数,它应该接受两个字符串并返回一个字符串。翻转函数的前两个参数。因此,由于需要一个值和一个列表来检查该值是否不在列表中,flip notElem::Eq a=>[a]->a->Bool需要一个列表和一个值来检查它是否不在列表中 因此,我们将首先部分地将f中的第一个参数应用于flip notElem,然后过滤列表。因此,您的表达是以下内容的简短形式: f = filter . flip notElem 因此,它将返回ys(第二个参数)中不在xs(第一个参数)中

我想知道这行是如何工作的,这是一个函数,它应该接受两个字符串并返回一个字符串。

翻转函数的前两个参数。因此,由于需要一个值和一个列表来检查该值是否不在列表中,
flip notElem::Eq a=>[a]->a->Bool
需要一个列表和一个值来检查它是否不在列表中

因此,我们将首先部分地将
f
中的第一个参数应用于
flip notElem
,然后
过滤列表。因此,您的表达是以下内容的简短形式:

f = filter . flip notElem
因此,它将返回
ys
(第二个参数)中不在
xs
(第一个参数)中的所有元素。例如:

f :: Eq a => [a] -> [a] -> [a]
f xs ys = filter (\y -> notElem y xs) ys
4
5
都是第二个列表的元素,但不是第一个列表的元素。

翻转函数的前两个参数。因此,由于需要一个值和一个列表来检查该值是否不在列表中,
flip notElem::Eq a=>[a]->a->Bool
需要一个列表和一个值来检查它是否不在列表中

因此,我们将首先部分地将
f
中的第一个参数应用于
flip notElem
,然后
过滤列表。因此,您的表达是以下内容的简短形式:

f = filter . flip notElem
因此,它将返回
ys
(第二个参数)中不在
xs
(第一个参数)中的所有元素。例如:

f :: Eq a => [a] -> [a] -> [a]
f xs ys = filter (\y -> notElem y xs) ys

4
5
都是第二个列表的元素,但不是第一个列表的元素。

您是否尝试调用此函数?例如,
f“abcde”“bad bread is good”
f“xyz”“extra credit”
的结果应该会给你一些线索。@lisyarus,是的,是的,我很抱歉,我的意思更多的是关于它的工作原理,我知道它会删除第二行第一行中出现的字母好的,这已经是问题中值得一提的一点,这将有助于回答问题。尝试执行
筛选。notElem
首先,然后添加
flip
。您是否尝试调用此函数?例如,
f“abcde”“bad bread is good”
f“xyz”“extra credit”
的结果应该会给你一些线索。@lisyarus,是的,是的,我很抱歉,我的意思更多的是关于它的工作原理,我知道它会删除第二行第一行中出现的字母好的,这已经是问题中值得一提的一点,这将有助于回答问题。尝试执行
筛选。请先记下lem
,然后添加
翻转
。谢谢您的帮助!谢谢你的帮助!