Re: Haskell: потрошение ADT
От: thesz Россия http://thesz.livejournal.com
Дата: 11.08.09 10:15
Оценка:
Здравствуйте, Rtveliashvili Denys, Вы писали:

RD>Доброе время суток!


RD>Есть произвольный экземпляр некого ADT (скажем, Left 5) и хочется превратить его в конструкцию вида (C, [V]), где C это некоторое представление конструктора, а [V] — спискок аргументов. Причем так, чтобы потом можно было собрать все обратно. И очень желательно иметь возможность превращать C и V в String и назад.


RD>Поски в области generic programming in Haskell пока что наводят на мысль, что C это скорее всего Constr, а V это быть может Dynamic. Но как распилить а потом запилить обратно (потенциально, после некоторых подкручиваний) — не ясно.


gmapQ :: (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u] Source<br />
A generic query that processes the immediate subterms and returns a list of results. The list is given in the same order as originally specified in the declaratoin of the data constructors.


RD>Есть ли у уважаемых специалистов идеи на этот счет?


Scrap Your Bolierplate — верное направление.

А самой задачей не поделишься? Может, попроще решение есть.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.