如何迭代列表?
我正在尝试使用 SML 进行基本的列表操作。
我想提取列表中的每个元素并将字符串附加到该元素并将其添加回列表中。 示例:
List : [A,B,C,D]
String : A
Final List: [AA,AB,AC,AD]
如何在 SML 中迭代列表中的每个元素?我可以使用 ^
附加字符串并使用 @
连接列表,但如何从列表中提取每个元素?
我们还可以使用映射或数组之类的东西来存储这些列表值并将其传递给 SML 中的不同函数吗?
我只能找到一些关于地图的模糊信息,而没有关于我们如何使用它的明确信息。
I am trying to do basic list operations with SML.
I want to extract each element of the list and append string to that element and add it back to the list.
Example:
List : [A,B,C,D]
String : A
Final List: [AA,AB,AC,AD]
How can I iterate through each element in the list in SML? I can append strings using ^
and concatenate lists using @
but how do I extract each element from the list?
Also can we use something like map or arrays to store these list values and pass it to different functions in SML?
I could just find some vague information about map and no definite information as to how we can use it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有两种简单的方法可以做到这一点:
上面使用模式匹配来破坏列表,执行操作,然后再次构造列表,不断递归。
这个要简单一些(可能比 addstring 中的显式情况更难阅读。)但它显示了如何使用 map - 您指定一个将每个元素从源域映射到目标域的函数,给它源域中的元素列表,并返回目标域中的列表。
当然,这些都不会对列表进行就地更新,而是返回新列表。
two easy ways to do this:
The above uses pattern matching to destruct the list, performs the operation, then constructs the list again, recursing as it goes.
This one is a fair bit simpler (if perhaps a tiny bit harder to read than the explicit cases in addstring.) but it shows how map is used - you specify a function that maps each element from the source to the target domain, give it a list of elements in the source domain, and it returns a list in the target domain.
of course, neither of these do in-place updating of the list, they return the new list.