点和点有什么区别(.)
和美元符号($)
?
据我了解,它们都是不需要使用括号的语法糖。
The $
运算符是为了避免括号。在它之后出现的任何内容都将优先于之前出现的任何内容。
例如,假设您有一行内容如下:
putStrLn (show (1 + 1))
如果你想去掉这些括号,下面的任何一行也可以做同样的事情:
putStrLn (show $ 1 + 1)
putStrLn $ show (1 + 1)
putStrLn $ show $ 1 + 1
该项目的主要目的是.
运算符并不是为了避免括号,而是为了链接函数。它可以让您将右侧出现的任何内容的输出与左侧出现的任何内容的输入联系起来。这通常也会导致括号更少,但工作方式不同。
回到同一个例子:
putStrLn (show (1 + 1))
-
(1 + 1)
没有输入,因此不能与.
操作员。
-
show
可以采取Int
并返回一个String
.
-
putStrLn
可以采取String
并返回一个IO ()
.
你可以连锁show
to putStrLn
像这样:
(putStrLn . show) (1 + 1)
如果您不喜欢括号太多,请使用$
操作员:
putStrLn . show $ 1 + 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)