Uczestniczyłem w a programming contest i one of the problems "danych wejściowych zawartych w liczbie ułamkowej w formacie dziesiętnym: 0.75
jest jednym z przykładów.Jak przeanalizować ułamek dziesiętny w produkcie Rational w języku Haskell?
Parsowanie tego w Double
jest trywialne (mogę użyć do tego celu read
), ale utrata precyzji jest bolesna. Trzeba być bardzo ostrożnym przy porównywaniu (nie byłem), co wydaje się zbędne, ponieważ ma się typ danych Rational
w Haskell.
Podczas próby użycia tego odkryłem, że do read
należy podać Rational
w następującym formacie: numerator % denominator
, którego oczywiście nie mam.
Więc pytanie brzmi:
Jaki jest najprostszy sposób analizowania reprezentację dziesiętną ułamka do Rational
?
Liczba zewnętrznych zależności również powinna być wzięta pod uwagę, ponieważ nie mogę zainstalować dodatkowych bibliotek w internetowym sądzie.
Dziękujemy! To działa. – Rotsor
możesz chcieć dodać 'readSigned', jeśli chcesz móc odczytać liczby ujemne:' fst. head $ readSigned readFloat "-3.14" :: Rational' – newacct