簡體   English   中英

Haskell 函數定義和參數列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM