для data A = A {a_unuqId :: Int, a_refs :: [B]} data B = B {b_unuqId :: Int, b_refs :: [A]} сериализуем в монаде type Ser a = StateT (Set.Set Int) (Writer [Word8]) a
посещённые Id добавляем в стейт, рекурсивный обход можно делать чем угодно, главное, чтоб было удобно. Чем плохо такое решение в лоб ?
no subject
Date: 2010-02-06 11:09 am (UTC)для
data A = A {a_unuqId :: Int, a_refs :: [B]}
data B = B {b_unuqId :: Int, b_refs :: [A]}
сериализуем в монаде
type Ser a = StateT (Set.Set Int) (Writer [Word8]) a
посещённые Id добавляем в стейт, рекурсивный обход можно делать чем угодно, главное, чтоб было удобно.
Чем плохо такое решение в лоб ?