В В отчете Haskell 98 сказано, что
Плавающий литерал должен содержать цифры как до, так и после десятичной точки;это гарантирует, что десятичная точка не может быть ошибочно принята за другое использование символа точки.
Какое еще использование может быть?Я не могу представить ни одного такого юридического выражения.
(Чтобы прояснить мотивацию: я знаю, что многие люди пишут числа типа 9.0
или 0.7
все время без необходимости к, но я не могу подружиться с этим. Я в порядке с 0.7
, а не с более компактными, но в остальном не лучше .7
, но записанные конечные нули кажутся мне неправильными, если они не выражают какое-то количество точнодо десятых долей, что редко бывает в тех случаях, когда Хаскелл заставляет меня писать 9.0
-значения.)
Я забыл, что писать составление функций без окружающих пробелов допустимо!Это, конечно, возможно, хотя можно избежать этой проблемы, жадно разбирая плавающие литералы, например,
replicate 3 . pred$8
≡
((replicate 3) . pred) 8
, но
replicate 3.pred$8
≡
(replicate 3.0 pred)8
.
Нет выражения, гдецелочисленный литерал требуется , чтобы стоять непосредственно рядом с .
, без пробелов?