在每次 List.map 迭代中递增 uniqueID
Incrementing uniqueID over each List.map iteration
我正在尝试使用唯一标识符初始化一组元素。这些元素是初始模型的一部分。
我想到的是函数
initElement: Int -> InputElement -> Output
initElement id element = ...
将给定的 id 添加到给定的元素。现在我在另一个函数中迭代这些元素,如下所示:
uid = 0
elementsList = ...
newList = List.map (initElement uid++) elementsList
并且我希望这个整数 uid 随着对元素的每次迭代增加 List.map,以便每个元素都分配一个唯一的数字。 ++ 显然不起作用。
这可能吗,还是我太面向对象了?我是函数式编程的新手。
一种选择是使用 List.indexedMap
http://package.elm-lang.org/packages/elm-lang/core/3.0.0/List#indexedMap
它给你一个很好的递增索引作为你函数的参数作为第一个参数。然后您可以使用它来适当地修改传入的 uid
我正在尝试使用唯一标识符初始化一组元素。这些元素是初始模型的一部分。
我想到的是函数
initElement: Int -> InputElement -> Output
initElement id element = ...
将给定的 id 添加到给定的元素。现在我在另一个函数中迭代这些元素,如下所示:
uid = 0
elementsList = ...
newList = List.map (initElement uid++) elementsList
并且我希望这个整数 uid 随着对元素的每次迭代增加 List.map,以便每个元素都分配一个唯一的数字。 ++ 显然不起作用。
这可能吗,还是我太面向对象了?我是函数式编程的新手。
一种选择是使用 List.indexedMap
http://package.elm-lang.org/packages/elm-lang/core/3.0.0/List#indexedMap
它给你一个很好的递增索引作为你函数的参数作为第一个参数。然后您可以使用它来适当地修改传入的 uid