請解釋Haskell如何確定帶有多個參數和多個部分應用函數的部分的優先級。有時我發現很難弄清楚當整個表達式需要多個參數時哪個部分函數會應用哪個參數。瞭解Haskell優先級規則如何與多個部分應用程序一起工作
以下是一些示例函數,但我確定不同的示例可以更具說明性。第一個來自「應用程序編程與效果」文章。
sequence :: [IO a] → IO [a]
sequence [] = return []
sequence (c : cs) = return (:) `ap` c `ap` sequence cs
(.) (.)
(.) (.) (.)
是否有工具將此類表達式轉換爲lambda表達式形式?
如果您在#haskell IRC頻道的時候,你可以使用@unpl ,它將無點的版本轉換爲點(ful)(lambda)版本。 (。)(。)(。)的例子:(\ c e f i - > c(e f i)) – bennofs