如果然后使用多个表达式OCaml

时间:2018-11-10 12:56:03

标签: c for-loop if-statement ocaml

如何在OCaml中编写类似这样的代码(在C语言中为main())

with open(keeniz_dir + '/world_cities.csv',  'r', encoding='latin1') as input:

它将返回布尔值True,并且y等于相应的i值。

基本上,在OCaml中,我想知道您是否可以使用if

for (i=0; i<y; i++)
    if (x==5)
    {
        y=i;
        return true;
    }

我知道begin-end之间的线没有正确实现。我什至不知道我想在OCaml中做些什么。如果您是对此有知识的人,请与我分享。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您的问题是关于从for循环中提早返回,这是您的处理方式:

exception Break of int

let n =
  try
    for i = 0 to 5 do
      if i mod 2 = 0 then
        raise (Break i)
    done;
    0
  with
    Break i -> i

如果更适合您的用例,您还可以分配给ref单元,而不是在异常中传递值。但这不是您通常应该在OCaml中编写的那种代码。尝试在OCaml中模拟C几乎总是一个坏主意。