我了解到Clojure读者将十进制文字解释为后缀"M",如1.23M,作为BigDecimal.而且我也知道没有'M'的十进制数字变成了Java的两倍.
但我认为正常的十进制数是BigDecimal会更好,而依赖于主机的十进制有后缀,比如1.23H.因此,当由于IEEE double的精度限制而导致数字被破坏或截断时,我们可以很容易地注意到该数字是精度受限的.此外,我认为更容易表达应该是独立于主机的.
除了时间性能之外,Clojure是否有任何理由将文字小数解释为Java double?另外,我认为时间性能不是一个答案,因为它不是C/C++,而且声明依赖于主机的十进制的其他方式可以像'1.23H'那样实现.
当我编写clojure代码时,我对何时遵循(func coll n)格式和(func n coll)格式感到困惑.
在Clojure/core中,
(take n coll)使用的同时(nth coll n)也是正确的代码.此外,还有(reduce func n coll),(get coll n)和(drop n coll).
在定义这些令人困惑的函数时,是否存在适当的参数类型的规则/约定?或者我应该doc每次都没有意义地打字?