私のような記録のための部分的な更新を承知している:素敵なレコードハスケルのトリックを扱いますか?
data A a b = A { a :: a, b :: b }
x = A { a=1,b=2 :: Int }
y = x { b = toRational (a x) + 4.5 }
は、部分的にしか初期化を行うサブレコードタイプを作成、またはサブレコードに(デ)シリアライズを行うための任意のトリックはありますか?
は特に、私は、これらの行の最初の作品が、2番目にはないことが判明:
read "A {a=1,b=()}" :: A Int()
read "A {a=1}" :: A Int()
あなたは常に正規表現を使用して、このような入力をマッサージできますが、私は好奇心が強いHaskellのようなものをオプション存在する。
私はあなたがここで何を求めているのかよく分かりません。 'A {a = 1}'を解析できる一般的なデシリアライゼーションメカニズム?私はHaskell 'Show'フォーマットのデータを実際に格納することはお勧めしません。それは全くコンパクトではなく、ハスケル以外のものでそれを解析することは苦痛になるでしょう。 – ehird