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

标签 elm

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

我想到的是一个函数

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

将给定的 id 添加到给定的元素。现在我在另一个函数中迭代这些元素,如下所示:
uid = 0    
elementsList = ...    
newList = List.map (initElement uid++) elementsList

我想要这个整数 用户名通过 List.map 对元素的每次迭代增加,以便每个元素都分配一个唯一的编号。++ 显然不起作用。

这是可能的,还是我想得太面向对象了?我对函数式编程很陌生。

最佳答案

一种选择是使用 List.indexedMap

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

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

关于elm - 在每个 List.map 迭代中增加 uniqueID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246679/

相关文章:

elm - 如何在 Elm 中 Debug.log 信号?

javascript - 如何在 Elm 中捕获服务器事件

javascript - 如何使用 Elm 和 Webpack 读取文本文件

elm - 如何在Elm中检测 "long press"?

static-analysis - Elm 查找未使用的函数

json - 如何在 Elm 0.17 中对具体类型进行 http 请求和解码响应?

elm - 如何在不为每条消息复制整个结构的情况下传递状态?

elm - Elm 中 'msg'中的 'HTML msg'实际上是什么?

elm - 如何将文件加载到 Elm REPL?

types - 理解类型注解中的类型变量