LINUX.ORG.RU

История изменений

Исправление quasimoto, (текущая версия) :

В моём примере не было парсинга, он добавляется с помощью Read в deriving, и это не хаскель программы, а просто дефолтное текстовое представление термов ADT (show . read = TextRep, read . show = ADT).

А аст это например вот — http://www.boost.org/doc/libs/1_41_0/libs/spirit/example/qi/calc2_ast.cpp, то есть если обвешаться бустом (там variants для сумм, например), то будет лучше, но всё равно далеко от нормальных ADT + PM (!) + Guards (!), так что исходный пример из топика всё равно проблематично писать.

Исходная версия quasimoto, :

В моём примере не было парсинга, он добавляется с помощью Read в deriving, и это не хаскель программы, а просто дефолтное текстовое представление термов ADT (show . read = TextRep, read . show = ADT).

А аст это например вот — http://www.boost.org/doc/libs/1_41_0/libs/spirit/example/qi/calc2_ast.cpp, то есть если обвешаться бустом (там variants для сумм, например), то будет лучше, но всё равно далеко от нормальных ADT + PM (!) + Guards (!), так что исходный пример всё равно проблематично писать.