Haskell 中是否有一种优雅的方式来“覆盖”Dhall 记录?

问题描述 投票:0回答:1

我正在使用 Dhall 接受用户配置。有些字段是必填的,而其他字段是可选的,当用户未指定时应使用其默认值。 这是我目前拥有的:

override :: FilePath  -- user
         -> FilePath  -- default
         -> IO Config
override user def = parseConfig $ def ++ " // " ++ user

finalConfig :: IO Config
finalConfig = do user <- getUserConfig
                 def <- getDataFileName "defaults.dhall"
                 return (user `override` defaults)

显然连接文件路径并插入

//
运算符已经够脏的了。我想知道是否有更优雅的方法。

haskell configuration record dhall
1个回答
0
投票

因此,使用当前的 Haskell API 来做这件事并不符合人体工程学,但我只是提出了一个拉取请求来添加一些新的实用程序,这将使这变得更容易。一旦合并和发布,您将能够解释和解码

Expr
而不是
Text
,这样您就不必使用原始字符串。

© www.soinside.com 2019 - 2024. All rights reserved.