ocaml 相关问题

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

我们如何组合从列表中删除n个元素并从列表中取出n个元素?

我们可以创建从列表中获取 n 个元素并从列表中删除 n 个元素的函数,如下所示: 让rec取n l = 如果 n = 0 那么 [] 别的 将 l 与 小时::t -> 小时...

回答 3 投票 0

在 OCaml 中递归删除尾部重复项

我尝试通过迭代一个带有空 complst 列表的列表来编写自己的解决方案,其中所有非重复项都被插入然后返回。 我知道这是一个过度复杂...

回答 2 投票 0

通过 Cygwin64 安装适用于 Ocaml 的 z3 库(Windows 11)

我正在尝试在 Cygwin64 终端(Windows 11)中为 Ocaml 安装 z3 库。我收到以下错误,即使已经安装了库,也找不到 -lstdc++ 。 # cc1:警告:c...

回答 1 投票 0

OCaml:如何获取 mli 文件本地的模块别名

是否可以在 mli 中为模块添加别名而不创建“必须实现的新模块”。 这个例子非常人为,但是,例如,假设我有以下源文件

回答 3 投票 0

为什么这个函数在ocaml中永远不会返回?

代码: 让 qrec=Queue.create () 让rec队列addrec1 n= 如果 n==1 那么 队列.add 1 qrec 别的 Queue.add n qrec; 队列地址1 (n-1) 让()= 队列地址1 5; Queue.iter print_int qrec; vscode...

回答 2 投票 0

如何使用ocaml中的rec函数在队列中添加项目?

代码: 让 qrec=Queue.create () 让q=Queue.create() 让queueaddforto = for i = 1到5做 队列.add i q 完毕 let rec queueaddrec n=if n>0 then Queue.add n qrec else queueaddrec (n-1) 让()=

回答 1 投票 0

只想选择列表中的一些随机元素并在 OCaml 中返回它们

我想在列表l中选择n个不同的随机元素并将它们返回到choose_elements中,但是对于足够大的列表,我遇到了StackOverFlow错误! 我尝试使用 tail_recursive 函数

回答 3 投票 0

如何获得此 ocaml 代码的正确结果?

代码: 让a=参考0 输入 t = |字符串的整数 | t * t 相加 让rec makestring_t =函数 |整数a->a |添加 (b,c)-> 增加一个; "(添加"^string_of_int(!a)^" ("^makestring_t(b)^...

回答 2 投票 0

无法解决与 gadt 类型不匹配的问题

我对 x 与 gadt 有以下类型定义。 输入 x = X : '一个选项 -> x 我正在尝试编写一个函数来获取带有标签 X 的选项的值 我首先尝试了以下方法 乐...

回答 1 投票 0

OCaml 语言的 IDE

除了 Camelia 之外还有其他值得信赖的 OCaml IDE 吗? 如果存在的话,我更喜欢基于 Eclipse 的 IDE。

回答 3 投票 0

OCaml 的并行化能力怎么样?

我对在项目中使用 OCaml 很感兴趣,但是我不确定它的并行化功能在哪里。 OCaml中有消息传递能力吗? OCaml 是否能够高效...

回答 4 投票 0

OCaml 中的 Union 函数调用

模块类型 SET = 信号 输入“一组” val emptyset : '一组 val union : '一组 -> '一组 -> '一组 结尾 模块设置:设置= 结构体 输入 'a set = 'a -> bool let emptyset : 'a s...

回答 1 投票 0

签名与 Set 实现不匹配

模块类型 SET = 信号 输入“一组” val 成员:'a -> 'a set -> bool val 子集:'一组 -> '一组 -> bool 结尾;; 模块 MySet : SET = 结构 输入 'a set = 'a -> bool 让我...

回答 1 投票 0

我可以将变体类型定义为“其他变体加上新的构造函数”而不复制粘贴垃圾邮件吗?

如果我有一些变体类型 foo: 输入 foo = | A |字符串B 我想创建一个新的变体类型 bar,它看起来与 foo 完全相同,但具有新的构造函数(任意,例如 float * 的 C...

回答 1 投票 0

[(key, [..]) 形式的列表存在问题; ...]

我正在尝试学习 OCaml,因为我是这门语言的新手,我偶然发现了这个问题,我似乎找不到一种方法来查看,在一个需要合并 2 种列表的函数中,如果...

回答 4 投票 0

异常:Invalid_argument“索引超出范围”

我写了以下内容: 类型滑动瓷砖 = { 可变垫:char数组数组; 可变行:int; 可变列:int };; 让a = { 垫=[| [|'1'; '2'; '3'|]; [|'4'; '5'; '6'|]; [...

回答 1 投票 0

Ocaml 类型与函数 div 中的列表不匹配

我正在尝试编写一个除法函数(作为合并排序的一部分),它接受一个列表并返回几个长度大致相同的列表。 我想使用 List.length() 函数来做到这一点。 我的...

回答 1 投票 0

如何扩展这个关于病毒传播的想法?

首先,我定义了类型: 输入 people_group = { people:字符列表; 距离:(char * float * char) 列表 };; 所以这个项目是关于病毒传播的。例如: 让 group1 : people_group ...

回答 1 投票 0

具有递归依赖元素的反向异构 gadt 列表

看过关于 List 的元素取决于前面元素的类型的答案,其中问题通过以下列表定义解决: 输入 ('a,'b) mlist = |明尼尔...

回答 1 投票 0

使用 Ocaml Opal 的递归 Lisp 解析器

我正在尝试使用 OCaml Opal 编写一个简单的 Lisp 解析器: 这是我的 AST: 原子类型 = int 数量 |字符串的标识 [@@deriving show] 类型 sexp = 原子的原子 | sexp列表的ListSexp [@@deriving sho...

回答 1 投票 0

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