gpt4 book ai didi

let ... in 的 OCaml 语法错误

转载 作者:行者123 更新时间:2023-12-01 12:54:39 26 4
gpt4 key购买 nike

我认为我有一个非常简单的问题,但无法弄清楚出了什么问题。我想打开一个文件并在文件不存在或其他情况下尝试失败并显示一条自定义消息。

这是我的代码(抱歉有法语评论):

if (argc = 1) then
aide ()
else
(* Si plus d'un argument, on récupère le type *)
if argc >= 2 then
let stage = int_of_string (Sys.argv.(1)) in
if stage != 0 && stage != 1 then
aide ()
else
()
else
()
;
(* Si plus de deux arguments, on récupère aussi l'entrée *)
if argc >= 3 then
let filename = Sys.argv.(2) in
let input =
try
open_in filename
with _ -> failwith ("Impossible d'ouvrir le fichier " ^ filename)
else
()
;
;;

我在 with 关键字上有一个语法错误。有人有想法吗?谢谢。

最佳答案

发生错误是因为您将 input 绑定(bind)到一个值,但没有在 then 分支中返回任何内容。

您应该在 try/with block 之后对值 input 做一些事情并返回 ()

if argc >= 3 then
let filename = Sys.argv.(2) in
let input = (* The error is in this line *)
try
open_in filename
with _ -> failwith ("Impossible d'ouvrir le fichier " ^ filename)
else
()

关于let ... in 的 OCaml 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10447809/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com