Изначально задача звучала так - сохранять и читать список опций (любого типа).
Для ее решения потребовался динамический тип, который умеет show и read, и при этом выглядеть результат show должен являться обычным кодом на хаскелле.
Короче хочется чтобы show (Foo 5) давал "(5::Int)", show (Foo 2.4) - "(2.4::Double)", show (Foo "abc") - "(\"abc\"::[Char]), а read это читал. первый я реализовал так
data VDyn = forall a. (Read a, Show a, Typeable a)
=> VDyn a
instance Show VDyn
where
showsPrec _ (VDyn a) = showString $
"("
++ (show a)
++ "::"
++ (show $ typeOf a)
++ ")"
А вот с read'ом напряг, тк тип записан после данных :( Если кто поможет буду очень признателен ;) (желательно парсить стандартными средствами как в GHC.Read)
Ответ на:
комментарий
от Begemoth
Ответ на:
комментарий
от Begemoth

Ответ на:
комментарий
от AiLr
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [haskell][news] GHC 7.4 (2012)
- Форум C++ сортировка произвольных типов. (2014)
- Форум Хаскель (2007)
- Форум Миры хаскеля (2014)
- Форум негодный Хаскель (2008)
- Форум хаскель, книга (2007)
- Форум Хаскель плох (+) (2008)
- Форум Научите правильно готовить монады через CPS (2015)
- Форум syslog-ng парсим цепочки key-value пар произвольной длинны (2013)
- Форум Парсить файл (2005)