在Haskell 98报告中,它说:
浮点字面量必须包含小数点前后的数字;这确保小数点不能被误认为是另一种使用点字符的方式。
还有什么其他用途?我无法想象出任何这样的合法表达式。
(为了澄清动机:我知道很多人经常写像
我忘记了可以在不加空格的情况下编写函数组合!当然,这是一个可能性,但是可以通过贪婪地解析浮点文字来避免这个问题,以便
浮点字面量必须包含小数点前后的数字;这确保小数点不能被误认为是另一种使用点字符的方式。
还有什么其他用途?我无法想象出任何这样的合法表达式。
(为了澄清动机:我知道很多人经常写像
9.0
或0.7
这样的数字,而不需要,但我无法完全接受这一点。我可以接受0.7
而不是更紧凑但其他方面没有改善的.7
,但是除非它们表示某些量精确到十分之一,否则超出的尾随零对我来说感觉很奇怪,在Haskell让我写9.0
-数字的场合很少发生。)
我忘记了可以在不加空格的情况下编写函数组合!当然,这是一个可能性,但是可以通过贪婪地解析浮点文字来避免这个问题,以便
replicate 3 . pred$8
≡ ((replicate 3) . pred) 8
,但replicate 3.pred$8
≡ (replicate 3.0 pred)8
。
是否存在这样的表达式,其中整数字面值必须直接紧挨着.
,而没有空格?
abs 3+b
但不能写max 3.b
当我想表达的是(.) (max 3) b
)。 - Ingomax A.b
(其中A
是一个具有Ord
实例的数据构造器,以便(.) (max A) b
是合法的)。 - leftaroundabout