Jef*_*ges 3 syntax haskell record
我知道对于以下记录的部分更新:
data A a b = A { a :: a, b :: b }
x = A { a=1,b=2 :: Int }
y = x { b = toRational (a x) + 4.5 }
Run Code Online (Sandbox Code Playgroud)
是否有任何技巧只能进行部分初始化,创建子记录类型或在子记录上进行(反)序列化?
特别是,我发现这些行中的第一行有效,但第二行没有:
read "A {a=1,b=()}" :: A Int ()
read "A {a=1}" :: A Int ()
Run Code Online (Sandbox Code Playgroud)
你总是可以使用正则表达式按摩这样的输入,但我很好奇Haskell类似的选项存在.