所以我使用了aeson库,并认为拥有以下功能非常有用:
v .:! f = liftM (fromMaybe mempty) (v .:? f)
Run Code Online (Sandbox Code Playgroud)
当我问GHCi的类型时,我得到:
(.:!)
:: (Monoid r, FromJSON r) =>
Object
-> T.Text -> aeson-0.7.0.6:Data.Aeson.Types.Internal.Parser r
Run Code Online (Sandbox Code Playgroud)
然而,解析器本身实际上并不无论是出口Data.Aeson还是Data.Aeson.Types.我被迫没有为我定义的功能设置类型签名吗?
或者,如果有人知道更好的方式来完成我想要做的事情,我会对你的建议感兴趣.
目前,在 Haskell 中完全有可能编写具有推断类型的代码,但由于未导出的符号,您无法自己编写该推断类型。2014 年 4 月,Haskell 库邮件列表上对此进行了讨论,没有得出明确的结论,但普遍的看法是保持当前的行为。
但是,一般规则是,如果需要语言扩展来编写要推断的类型签名,那么即使您没有显式包含签名,也需要启用该扩展。
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |