我的意思是,不要把简单的东西,像这样(从这里 ):
strike :: StateT Game IO ()
strike = do
lift $ putStrLn "*shink*"
boss.health -= 10
但事情喜欢用镜头映射在从类型Linear
。 我怎么会在镜头方面表示这样的:
vecMod :: (Integral a) => V2 a -> V2 a -> V2 a
vecMod (V2 x1 y1) (V2 x2 y2) = V2 (x1 `mod` x2) (y1 `mod` y2)
又如:我当前的代码是满喜欢这个小表情:
isAt :: Thing -> Position -> Game Bool
isAt thing pos = do
b <- use board
return $ elem thing (b ! pos)
(其中板是Array (V2 Int)
)
我的猜测是,有(带lens
)也表示这是一个更规范的方法。
一般来说:如何才能知道镜头是能够做,什么不该和如何做?