Haskell函数定义和参数列表

时间:2016-05-27 00:03:35

标签: function haskell

我有以下函数定义(相当于):

reverseWords :: String -> String
reverseWords wds = unwords . map reverse . words $ wds

reverseWords :: String -> String
reverseWords = unwords . map reverse . words

我知道它们是等价的,因为它们会产生相同的结果,但我对第二种形式感到有些困惑。

如果我调用类似的函数:

reverseWords abc

haskell如何决定在哪里放置这个' abc'参数β

1 个答案:

答案 0 :(得分:1)

Haskell不需要决定放置abc的位置。当您在第二个示例中致电reverseWords时,它只会返回unwords . map reverse . words

然后abc将应用于您最终会得到与第一个示例相同的结果。

这也称为无点样式,您可以在此处阅读更多相关信息:https://wiki.haskell.org/Point-free