我刚开始接受Haskell的动力,并喜欢我每天遇到的抽象,例如lens
。
我认为REST API镜头对我们来说很有用,但在我花费数小时发现它之前是不可能的......是吗?
我看到的主要问题是我不是直接访问数据结构,而是输出所请求的字符串(我的镜头语法可能不对):
λ> over (user "robertplant") . set favoritesong
POST http://...com/api/user/robertplant/favoritesong
{
...
}
----
λ> over (user "robertplant") . view _1
GET http://...com/api/user/robertplant/favoritesong/123
我认为这至少是一个应用问题,或者可能需要一个Monad?
我的意思是,我可以想象这个镜头满足镜头规律(在某种意义上......它对我来说仍然有点模糊),但我还没有看到镜头有硬件用于输出琴弦/其他像这样的数据结构。
这是值得追求的旅程吗?
答案 0 :(得分:0)
不,不幸的是,这与镜片没有任何关系。镜头是满足lens laws
的东西view l (set l v s) ≡ v
set l (view l s) s ≡ s
set l v' (set l v s) ≡ set l v' s
你可能会在Haskell写一些聪明的东西来产生你正在寻找的输出,它只是与这个话题无关。