在Haskell中有没有一种优雅的方法来“覆盖”Dhall记录?

enyaitl3  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(123)

我使用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)

很明显,连接文件路径和插入//操作符已经够麻烦的了。我想知道是否有一个更优雅的方法来解决这个问题。

kokeuurv

kokeuurv1#

因此,使用当前的Haskell API并不符合人体工程学,但我只是提出了a pull request,以添加一些新的实用程序,使这更容易。一旦它被合并和释放,你就可以解释和解码Expr而不是Text,这样你就不必处理原始字符串了。

相关问题