Как разобрать десятичную дробь в Rational на Haskell?

Я участвовал в конкурсе по программированию и входные данные одной из задач включали дробное число в десятичный формат: 0,75 является одним из примеров.

Анализировать это на Double тривиально (для этого я могу использовать read ), но потеря точности Это болезненно. Нужно быть очень осторожным с двойными сравнениями (я не был), что кажется избыточным, поскольку в Haskell есть тип данных Rational . ​​

При попытке использовать это , Я обнаружил, что для чтения a Rational нужно предоставить строку в следующем формате: числитель% знаменатель , что я, очевидно, не имеют.

Итак, возникает вопрос:

Каков самый простой способ разобрать десятичное представление дроби в Рациональное ?

Следует учесть количество внешних зависимостей. тоже внимание, так как я не могу установить дополнительные библиотеки в онлайн-судью.

10
задан Rotsor 14 August 2011 в 12:26
поделиться