Для того, чтобы округлить число до двух знаков после запятой, нужно выполнить следующую последовательность действий:
1. Умножить число с дробной частью на 100
2. Округлить до целых, получится число без дробной части (функция round)
3. Превратить число без дробной части обратно в число с дробной частью (функция fromIntegral)
4. Поделить результат на 100
Третий шаг необходим в связи с тем, что хаскел сам не преобразовывает типы.
Работающее решение, написанное императивным программистом, которого случайно занесло в функциональщину:
toTwoDigit x = floatBigX/100
where
bigX = x*100
intBigX = round bigX
floatBigX = fromIntegral intBigX
Задача минимум: переписать это решение в одну строчку, без использования промежуточных именованных сущностей (без where).
Задача максимум: переписать то, что получилось в виде чистой композиции функций (без x, dotless notation).