while-loop - 在尝试后返回类型

标签 while-loop try-catch ocaml imperative-programming

我几乎是第一次尝试在 ocaml 中编写命令式代码来尝试回答本网站上的问题,但我遇到了一个小问题。

let f() =
try
  while true do
    ()
  done
with
    _ -> 2

他不喜欢这样,因为他认为这个函数返回unit,就像在try块中一样,但是try块返回一个int。因此,如果我在“完成”后添加 3,它会起作用,但它真的很难看,因为 3 真的永远不会返回。

你怎么做到这一点 ?

最佳答案

使用 assert false ,它总是引发异常,因此可以在任何类型的地方使用:

让 f() =
尝试
虽然是真的
()
完毕;
断言错误

_ -> 2

关于while-loop - 在尝试后返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18201208/

相关文章:

mysql - PHP PDO foreach 还是 while in slider?

javascript - "throw new Error()"在 catch block 上下文中捕获

尽管我指示 OCaml A ref 不会改变它的值

ocaml - 为什么 "**"的绑定(bind)不比 OCaml 中的否定更紧密?

java - 在实例中运行并在再次运行前停止 5 分钟的代码

php - 通过 while 循环获取电子邮件地址并发送 php 电子邮件

SQL Server : Endless WHILE EXISTS loop

php - 在不使用 Try and Catch 的情况下获取 PDO 错误

c# - 是否有什么东西阻止 Response.Redirect 在 try-catch block 内工作?

ocaml - 安装 ocamlfind.1.3.3 时出错配置 : m4 not in PATH; this is required