Greg Hibberd
11/13/2019, 9:14 PMfun ListK<Tuple2<String, Int>>.modifyListItem(key: String, amount: Int) = Option.fx {
//Find the item
val index = indexOfFirst { it.a == key }.let { if(it == -1) None else Some(it) }.bind()
//Get the item
val item = get(index)
//Modify
val modified = itemLens.set(item, item.b + amount)
//Create an index
val listIndex = ListK.index<Item>().index(index)
//Replace the item
listIndex.set(this@modifyListItem, modified)
}
jereksel
11/13/2019, 9:46 PMGreg Hibberd
11/13/2019, 9:58 PMListK.index<Item>().index(...)
inline like that "correct"? It seems a bit long-winded