我想玩一下Lens
图书馆一点。我已将其加载到 GHCi 中并创建了带有适当下划线的记录数据类型:
> data Foo a = Foo {_arg1 :: Int, _arg2 :: [a]}
我想制作镜片Foo
使用makeLenses
模板。我想这样做,而不需要阅读整套模板-Haskell 文档 http://www.haskell.org/haskellwiki/Template_Haskell.
我可以在 GHCi 提示符下输入什么咒语才能使其发挥作用?
在 GHCi 7.8.3 中测试:
:set -XTemplateHaskell
:m +Control.Lens
:{
data AST = AInt { _aid :: Int, _ival :: Int }
| AChar { _aid :: Int, _cval :: Char }
deriving (Show)
makeLenses ''AST
:}
(我相信:{ ... :}
块是必要的makeLenses
上班)。
我们来简单检查一下:
λ >> AChar 100 'f' ^. aid
100
λ >> AChar 100 'f' ^? cval
Just 'f'
λ >> AInt 101 0 ^? cval
Nothing
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)