大学example解释了如何添加和删除地图项目:
(departments composeLens at("Physics")).set(Some(physics))(uni)
(departments composeLens at("History")).set(None)(uni)
但这不适用于列表:
(lecturers composeOptional index(2)).set(Lecturer("New", "Lecturer", 50))(dep)
(lecturers composeOptional index(0)).set(None)(dep)
添加无效,删除会引发编译错误。
答案 0 :(得分:1)
由于OP中没有明确的问题,我将尝试回答几个可能的问题:
换句话说,
index
可以更新任何现有值,而at
也可以insert
和delete
。
就在上面引用的文本下方:
由于
index
比at
弱,因此我们可以在比Index
更多的数据结构上实现At
的实例。例如,List
或Vector
仅具有Index
的实例,因为无法在序列的任意索引处插入元素。
所以可能不可能... 我没有Monocle在这里测试一些东西。