镜头设置器将元素添加到元组的结尾

时间:2016-12-28 14:36:18

标签: haskell lens

是否有任何镜头可以帮助我对任何长度的元组进行以下转换(至少说10-15个元素):

(a, b, c) -> d -> (a, b, c, d)

1 个答案:

答案 0 :(得分:2)

要获得镜头,您需要一个具有定位器功能的吸气剂。不幸的是,没有办法获得三元组的第四个元素(Nothing除外,或任何其他单元类型)。所以,你最终得到了一堆setter,这些是一些简单的模式匹配函数(每个n元组一个),但不是镜头。

如果你真的需要非均匀的容器,你可能需要一个简单的列表或一些免费的构造吗?