在每次 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