lifo作为光学设备排队

问题描述 投票:1回答:1

考虑项目[a]的列表和一对功能

pop :: [a] -> (Maybe a, [a])
pop = headMay &&& tailSafe

push :: a -> [a] -> [a]
push = (:)

仅向列表提供后进先出队列结构。

我可能是错的,但是这种API感觉很lens y,它提供了一种访问列表中第一个元素的方法。它仍然既不是Lens也不是Prism

我想知道这可以实现为Traversal或其他光学结构)>

考虑项目列表[a]和一对函数pop :: [a]->(也许a,[a])pop = headMay &&& tailSafe push :: a-> [a]-> [a] push =(:),仅向列表提供...

haskell lens lenses
1个回答
1
投票

在列表头处的弹出和弹出可以表示为棱镜-从[a](a, [a]),再从(a, [a])[a]。在lens

© www.soinside.com 2019 - 2024. All rights reserved.