sml - 如何在两个整数范围内嵌套 for 循环?

标签 sml

我想复制一个类似的函数 -

for i in range(10): 
    for j in range(10): 
        do something with i, j

在 SML 中是否有一种简单的方法可以做到这一点?

最佳答案

你当然可以这样做,但你应该考虑你是否真的想对 i, j 做一些事情并丢弃结果。这本质上是命令式逻辑,而不是真正惯用的标准机器学习。

但如果这确实是您想要的,那么有几种方法。这是一个必要的:

let val i = ref 0
 in while !i < 10 do
    ( let val j = ref 0
       in while !j < 10 do
          ( do something with i, j
          ; j := !j + 1
          )
      end
    ; i := !i + 1
    )
end

这是一个更惯用的:

let val range0To9 = List.tabulate (10, fn i => i)
 in List.app range0To9 (fn i => List.app range0To9 (fn j => do something with i, j))
end

关于sml - 如何在两个整数范围内嵌套 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54337199/

相关文章:

sml - 'struct' 是否有类似包含的命令,类似于 'include' 的 'sig' ?

algorithm - 我怎样才能找到给定列表的分区?

java - SML 中的 printf 调试

sml - number_in_month 练习(迭代 SML 中的多个列表)

metaprogramming - 为什么机器学习被称为元语言?

sml - 用 SML 构建库

list - SML:从列表中获取元素

functional-programming - 详尽的模式

algorithm - 给定原始字符串和编码字符串,如何归纳编码?

functional-programming - 在 SML 中使用折叠