доброго времени суток имеют место быть два глупых вопроса. первый (составной): properFraction (liftM read $ getLine) --возвращает (b, IO a) почему именно так? т.е. почему только второй элемент кортежа находится внутри монады IO? более того: snd $ properFraction (liftM read $ getLine) --отрабатывает fst $ properFraction (liftM read $ getLine) --приводит к ошибке однако при всём этом функция printTuple :: (a, b) -> IO () printTuple (int, frac) = do print int print frac будучи вызванной в таком вот контексте do val <- properFraction (liftM read $ getLine) printTuple val отрабатывает опять же без проблем вопрос в следующем: откуда появляется различие между типами элементов кортежа, возвращаемого properFraction, и куда оно внезапно исчезает? то есть не то чобы оно совсем исчезало - тип b может быть каким-нибудь (IO c), однако print (IO c) в таком случае не должен отрабатывать - (IO c) не является экземпляром Show к сожалению сейчас без доступа к ghc, текст сообщений об ошибках приведу завтра ну и второй вопрос - как средствами библиотеки стандартной поставки ghc произвести сравнение двух чисел с плавающей запятой с заданной точностью (например, до пятого знака после запятой)? заранее спасибо
Ответ на:
комментарий
от jtootf
Ответ на:
комментарий
от Miguel
Ответ на:
комментарий
от jtootf
Ответ на:
комментарий
от Begemoth
Ответ на:
комментарий
от Miguel
Ответ на:
комментарий
от Begemoth
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [haskell][Тормоза] (2012)
- Форум Haskell: пара вопросов (2008)
- Форум haskell: (&) (2019)
- Форум [Haskell] The Yale Haskell Group (2008)
- Форум Haskell (2020)