[英]Number of arguments of composition in haskell
最近我一直在學習 haskell 中的組合,現在對這個例子有點困惑。
(const . min) 3 0 4
結果我得到 3,所以在內部它必須像這樣計算:
const (min 3) 0 4
但我想既然 min 需要兩個 arguments,它應該是這樣的:
const (min 3 0) 4
因此,顯然該組合只采用了這一論點,在這種情況下為 3,而不是像我預期的那樣,所有的 arguments 都是最小的。 這是否意味着作品在默認情況下只接受一個參數,或者我在這里沒有得到什么?
您可以通過手動評估初始表達式來回答您的問題。
(const . min) 3 0 4
⇒ (\x -> const (min x)) 3 0 4 * defn of (.)
⇒ (const (min 3)) 0 4 * function application
⇒ ((\x y -> x) (min 3)) 0 4 * defn of const
⇒ (\y -> min 3) 0 4 * function application
⇒ (min 3) 4 * function application
⇒ 3 * because 3 is less than 4
值得注意的是 function 應用程序是左關聯的,因此fxy
與(fx) y
的含義相同。
還值得注意的是\xy -> z
與\x -> \y -> z
z 的含義相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.