如何解决和有什么区别点和 $美元符号?
$
运算符用于避免括号。在它之后出现的任何东西都将优先于之前出现的任何东西。
例如,假设您有一行内容为:
putStrLn (show (1 + 1))
如果你想去掉这些括号,下面的任何一行也可以做同样的事情:
putStrLn (show $ 1 + 1)
putStrLn $ show (1 + 1)
putStrLn $ show $ 1 + 1
运算符的主要目的.
不是避免括号,而是链接函数。它使您可以将右侧出现的任何内容的输出与左侧出现的任何内容的输入联系起来。这通常也会导致更少的括号,但工作方式不同。
回到同一个例子:
putStrLn (show (1 + 1))
-
(1 + 1)
没有输入,因此不能与.
运算符一起使用。 -
show
可以取 aInt
并返回 aString
。 -
putStrLn
可以取 aString
并返回 aIO ()
。
你可以show
像putStrLn
这样链接:
(putStrLn . show) (1 + 1)
如果您喜欢的括号太多,请使用$
运算符删除它们:
putStrLn . show $ 1 + 1
解决方法
(.)
点和美元符号有什么区别($)
?
据我了解,它们都是不需要使用括号的语法糖。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。