嗨,我对Haskell有点问题,我是语言的新手,所以这里是问题,我有:
data Setup v = Setup {
SetupMap :: Map.Map v Status,
SetupGraph :: Graph v
}
我想实现这个功能:
st :: Ord v => Setup v -> v -> Status
它应该返回键映射的状态,我尝试了几个但没有编译如下:
st c e = Map.fromList(Map.keys . SetupMap c ) Map.! e
我陷入困境,缺乏想法。谢谢
这应该工作。
data Setup v = Setup {
setupMap :: Map.Map v Status,
setupGraph :: Graph v
}
st :: Ord v => Setup v -> v -> Status
st c e = setupMap c Map.! e
请注意,当密钥不存在时,Map.!
会使程序崩溃。你应该返回Maybe Status
并使用安全的Map.!?
。