这是功能:
csv.reader()/csv.writer()
它接受一个列表并返回一个匿名函数列表,它们从x中减去每个元素。
显然有一些方法可以用20个字符或更少的字符写这个整个函数。
我尝试用f [] = []
f (h:t) = (\x -> x - h) : f t
来做,但这只是将一个函数应用于列表的每个元素。我还尝试用map
取代匿名函数,但这也无效。
有人有想法吗?
答案 0 :(得分:7)
您可以简单地使用:
f :: Num a => [a] -> [a -> a]
f = map subtract
从subtract :: Num n => n -> n -> n
开始,这意味着我们将列表中的每个元素h
映射到函数subtract h
。从任何给定值h
中减去h
减去x
。所以subtract h x == x - h
。