相关疑难解决方法(0)

管理大型Haskell记录的更好方法是什么?

用字母替换字段名称,我有这样的情况:

data Foo = Foo { a :: Maybe ...
               , b :: [...]
               , c :: Maybe ...
               , ... for a lot more fields ...
               } deriving (Show, Eq, Ord)

instance Writer Foo where
  write x = maybeWrite a ++
            listWrite  b ++
            maybeWrite c ++
            ... for a lot more fields ...

parser = permute (Foo
                   <$?> (Nothing, Just `liftM` aParser)
                   <|?> ([], bParser)
                   <|?> (Nothing, Just `liftM` cParser)
                   ... for a lot more fields ...

-- …
Run Code Online (Sandbox Code Playgroud)

haskell records

4
推荐指数
1
解决办法
309
查看次数

有没有办法将Maybe构造函数应用于具有泛型的每个记录字段?

我有两种数据类型,第二种是第一种副本,但每个字段都有Maybe.

data A = {a :: Int, b :: String}
data B = {c :: Maybe Int, d :: Maybe String}
Run Code Online (Sandbox Code Playgroud)

有没有办法发挥作用

f :: A -> B
g :: B -> A -> A
Run Code Online (Sandbox Code Playgroud)

对领域本身没有任何了解?(如果第一个参数的值为nothing,g则将从第二个参数中取默认值)

generics haskell types

4
推荐指数
1
解决办法
269
查看次数

标签 统计

haskell ×2

generics ×1

records ×1

types ×1