ocaml 相关问题

OCaml是一种严格的静态类型函数式编程语言,专注于表达性,正确性和效率。

如何使用Janestreet Core定义自定义异常打印机?

默认情况下,失败异常打印如下: # print_endline(Printexc.to_string(失败“呃 哦”));; 失败(“呃 哦”) 为了提高可读性,我们想打印 Failure 的参数...

回答 1 投票 0

OCaml 标准地图与 Jane Street Core.std 地图

所以我在程序中使用 Jane Street 的 Core.std 来处理某些事情,但仍然想使用标准的 OCaml Map。但是,当我调用像 mem 这样的函数时,它需要 Core.std 的签名

回答 2 投票 0

找不到 .ocamlinit 文件

我正在尝试为 Real World OCaml 书设置 OCaml 环境。 我需要 OCaml、OPAM、Utop 和 Core 库。我已经能够安装 OCaml、OPAM 和 Utop,但我在设置时遇到问题...

回答 3 投票 0

在 Caml Async 中等待 Writer.write 完成

我有以下简单的 OCaml 异步作业,该作业应该写入文件并终止进程。 Unix.openfile "foobar" ~mode:[`Creat;`Rdwr] >>= 有趣的 fd -> 让 wr = Writer.cre...

回答 1 投票 0

Windows 支持 Jane Street OCaml Core?

我正在阅读 https://realworldocaml.org/ (顺便说一句,这是一本很棒的书),所有示例都假设使用 Jane Street Core 库。我还不熟悉 OCaml 环境并且

回答 2 投票 0

solver_get_unsat_core() 返回空核心

我正在尝试使用 OCaml API 编写一个简单的 Z3 问题来提取未饱和的核心。问题是返回的 unsat 核心不应该是空的。你有什么想法或者你可以...

回答 2 投票 0

Camlp5:将多态类型定义转换为严格语法

我有一些使用 Camlp5 的旧代码。我一直使用 Debian 附带的 Camlp5 版本。现在这个版本8.00.04处于严格模式。我的旧代码不再编译。问题似乎...

回答 1 投票 0

如何在可迭代列表中应用函数

所以我是 OCaml 新手,我在列表方面遇到了一些问题。 我所拥有的是如下字符列表: 让字母= [a;b;c;d] 我想知道如何迭代列表并应用函数...

回答 2 投票 0

如何简化嵌套模式匹配子句?

我有带有很多选项修饰符的嵌套数据类型。当我需要匹配嵌套类型时,我想简化函数的源代码。 考虑示例: 类型 ty = Ty1 |泰2 让 func = 有趣...

回答 2 投票 0

OCaml - 返回列表所有前缀的函数

对于 [1;2;3] ,我想返回 [[]; [1]; [1; 2]; [1; 2; 3]]。我碰壁了,我需要帮助,这就是我到目前为止所做的 让转速表= 让rec aux acc = 函数 | [] -> ACC |小时::...

回答 4 投票 0

两种递归函数的区别

在 OCaml 中,我看到有两种编写地图函数的方法 让记录映射 f xs = 将 xs 与 | [] -> [] | x::rest -> f x :: 映射 f 休息 和 让地图 f xs = 让rec走吧...

回答 3 投票 0

使用 ncurses 时如何处理 OCaml 中的错误?

我正在学习OCaml,我想编写一个curses应用程序。我对这种语言非常陌生,当我开始编写curses 函数时,我注意到其中许多函数都有类型unit -> err....

回答 1 投票 0

如何将一个列表拆分为两个列表

我必须创建一个将数字列表拆分为两个列表的函数: [Int(17);Float(18.9);Int(777);Float(15.5)] -> [Int(17);Int(777)] , [Float(18.9);Float(15.5)] 类型编号 = |整数的整数 |弗洛...

回答 1 投票 0

OCaml 语法错误,带有 if-else 块,没有任何信息

我是 Ocaml 的新手,我必须做一个项目。我目前面临带有 end 关键字的 if-else 块的问题。这是我有问题的方法..这是我的完整项目。谢谢你的惠顾...

回答 1 投票 0

是否可以使用Core编译OCaml代码而无需corebuild?

我使用的是Ubuntu 18.04。我安装了 OCaml 4.05(通过 apt-get)以及 utop 和 Core(通过 opam)。这是我的 ~/.ocamlinit 的内容: (* 由 OPAM 添加。*) 让() = 尝试 Topdirs。

回答 2 投票 0

无法在F*中编译Hello World

OCaml 和 F* 均已成功安装。我能找到的唯一类似于 Hello World 示例的是: 模块你好 打开FStar.IO 让 main = print_string “你好 F*! &qu...

回答 1 投票 0

opam升级到最新版本失败

在 Ubuntu 64 位版本 22.04 设备上,我安装了 opam 和 ocaml,其中 ocaml 版本为 4.08.0,我想将其升级到 5.1.0 以使用 Effects 包。但是,运行 opam

回答 1 投票 0

Stdio.printf 给出类型错误,而 Printf.printf 则没有

一个“小”ocaml printf 问题。 Printf 模块中有一个 printf 可以在 utop 甚至 ocaml (解释器)和 ocamlc (编译器)中工作 Stdio模块中有printf。这只适用于 utop ...

回答 1 投票 0

无法在 Windows 上安装 OCaml:权限错误

我正在尝试按照本指南在 Windows 上安装 OCaml。我所做的就是从这里下载最新的安装程序,但是当我尝试运行它时,我得到: 致命的[ebe9e0f2]。重命名 C:\Users\ 我正在尝试按照 this 指南在 Windows 上安装 OCaml。我所做的就是从here下载最新的安装程序,但是当我尝试运行它时,我得到: FATAL [ebe9e0f2]. rename C:\Users\<myusername>\AppData\Local\Programs\DiskuvOCaml\bin\bos-08440b.tmp to C:\Users\<myusername>\AppData\Local\Programs\DiskuvOCaml\bin\opam-real.exe: Permission denied 我尝试以管理员身份运行它,但出现相同的错误。我在任何地方都找不到有关该错误代码的信息,即使在故障排除指南中也是如此。有什么想法吗? 重新启动后重新启动设置时会发生这种情况。我已经删除了整个diskuv目录并重新启动。 如果您检查目录,目标已经存在,因此重命名失败 - 脚本应检查是否存在或文件移动。 我说删除整个目录,因为如果你只删除这一个目标,它只会转移到其他会出现相同错误的可执行文件。 这是截至 2023 年 3 月 Windows 10 的情况。 我无法添加评论,但我发现你还必须卸载 git,因为它使用 ocaml 安装它自己的 git。就像你不能拥有 mingw 一样,因为它安装了自己的版本。

回答 2 投票 0

如何从 OCaml 中的文本文件中逐行读取?

这就是我到目前为止所拥有的。这不是您所需要的一切吗?我不断收到错误“错误:未绑定模块标准” 让 r 文件= 让 chan = open_in 文件中 标准输入列表(chan)

回答 12 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.