请解释 Haskell 如何确定节的优先级、带多个参数的函数和多个部分应用的函数。有时我发现当整个表达式采用多个参数时,很难弄清楚哪个部分函数将应用哪个参数。
以下是一些示例函数,但我相信不同的示例可能更具说明性。第一个取自“带有效果的应用程序编程”一文。
sequence :: [IO a] → IO [a]
sequence [] = return []
sequence (c : cs) = return (:) `ap` c `ap` sequence cs
(.) (.)
(.) (.) (.)
是否有将此类表达式转换为 lambda 表达式形式的工具?