List 对于OCaml中不带整数的语句

List 对于OCaml中不带整数的语句,list,for-loop,recursion,match,ocaml,List,For Loop,Recursion,Match,Ocaml,出于学习的原因,我想在OCaml中使用For循环,而不是递归 我已经做了一些研究,并应用了()的一个示例: 这是有道理的。然而,当我查看它时(例如在VisualStudio上),它告诉我's'是一个int变量。因此,我不能做这样的事情(其中“a”、“b”是任何类型的变量): 难道没有一种方法可以像Python中那样使用for语句吗?我的意思是,在列表中使用's'而那是它的类型,而不是'int' 有些东西我在那里看不到 提前谢谢 OCaml中没有foreach。递归是惯用的风格,或者如果您真的想避

出于学习的原因,我想在OCaml中使用For循环,而不是递归

我已经做了一些研究,并应用了()的一个示例:

这是有道理的。然而,当我查看它时(例如在VisualStudio上),它告诉我's'是一个int变量。因此,我不能做这样的事情(其中“a”、“b”是任何类型的变量):

难道没有一种方法可以像Python中那样使用for语句吗?我的意思是,在列表中使用's'而那是它的类型,而不是'int'

有些东西我在那里看不到


提前谢谢

OCaml中没有foreach。递归是惯用的风格,或者如果您真的想避免递归,可以使用
while
循环。For循环只对整数进行迭代


您可能会对所链接的教程的性质感到困惑:这是一个为OCaml实现(旧式)语法扩展的教程,而不是关于在OCaml中使用
for
循环的教程。

我明白了。。非常感谢你!递归没有问题,我只想在自然函数语言中使用循环。我将尝试使用
while
并在这里发布与之相同的答案(如果结果有趣)。再次感谢!对使用
不感兴趣而
,只需使用自然列表递归,如:
let a_list = ["hello"; "world"] in
for s in a_list do
  print_endline s
done
let a_list = [a;b;c...] in
for s in a_list do
  match s with
    ...
done