Shuklan的Haskell讲座要求对以下代码进行解糖:
main = do
putStrLn "Enter name:"
name <- getLine
putStrLn ("Hi " ++ name)
我想出了以下内容:
main = putStrLn "Enter name:" >> getLine >>= \str -> putStrLn ("Hi " ++ str)
他透露:
main = putStrLn "Enter name:" >> getLine >>= putStrLn . ("Hi " ++)
我从未见过这种语法,请问它是如何工作的?
\str -> putStrLn ("Hi " ++ str)
替换为putStrLn . ("Hi " ++)
是在desugaring规则中未指定的额外工作。 - Rein Henrichs