虽然我对数学意义上的柯里化有点了解,但部分应用中缀函数是一个新概念,这是我在深入阅读《Learn You a Haskell for Great Good 》一书后发现的。
鉴于此功能:
applyTwice :: (a -> a) -> a -> a
applyTwice f x = f (f x)
作者以一种有趣的方式使用它:
ghci> applyTwice (++ [0]) [1]
[1,0,0]
ghci> applyTwice ([0] ++) [1]
[0,0,1]
在这里,我可以清楚地看到结果函数传递了不同的参数,考虑到它是一个柯里化函数,这不会以正常方式发生(会吗?)。那么,Haskell 对中缀切片有什么特殊处理吗?它对所有中缀函数都是通用的吗?
作为旁注,这是我学习 Haskell 和函数式编程的第一周,我仍在阅读这本书。