[英]Haskell function definition and arguments list
我有以下函數定義(它們是等效的):
reverseWords :: String -> String
reverseWords wds = unwords . map reverse . words $ wds
和
reverseWords :: String -> String
reverseWords = unwords . map reverse . words
我知道它們是等效的,因為它們產生相同的結果,但我對第二種形式感到有些困惑。
如果我調用一個函數,如:
reverseWords abc
haskell 如何決定將這個“abc”參數放在哪里?
Haskell 不需要決定將abc
放在哪里。 當您在第二個示例中調用reverseWords
,它只會返回unwords . map reverse . words
unwords . map reverse . words
unwords . map reverse . words
。
然后將 abc 應用於您將得到與第一個示例相同的結果的結果。
這也稱為 Point-free 風格,您可以在此處閱讀更多相關信息: https : //wiki.haskell.org/Point-free
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.