Изначально задача звучала так - сохранять и читать список опций (любого типа). Для ее решения потребовался динамический тип, который умеет 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)
- Форум Хаскель плох (+) (2008)
- Форум хаскель, книга (2007)
- Форум Научите правильно готовить монады через CPS (2015)
- Форум syslog-ng парсим цепочки key-value пар произвольной длинны (2013)
- Форум Парсить файл (2005)