在每个List.map迭代中增加uniqueID

时间:2015-12-13 00:34:02

标签: elm

我尝试使用唯一标识符初始化一组元素。元素是初始模型的一部分。

我想到的是一个功能

initElement: Int -> InputElement -> Output
initElement id element = ...

将给定的id添加到给定元素。现在我在另一个函数中迭代这些元素,如下所示:

uid = 0    
elementsList = ...    
newList = List.map (initElement uid++) elementsList

我希望这个整数 uid 随着List.map对元素的每次迭代而增加,以便每个元素都获得一个唯一的编号。 ++显然不起作用。

这是可能的,还是我认为过于面向对象?我对函数式编程很陌生。

1 个答案:

答案 0 :(得分:4)

一种选择是使用List.indexedMap

http://package.elm-lang.org/packages/elm-lang/core/3.0.0/List#indexedMap

它为您的函数提供了一个很好的递增索引作为第一个参数。然后您可以使用它来修改传入的uid approriattely