ocaml 相关问题

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

这种模式匹配在 OCaml 中并不详尽

我是 OCaml 新手,我编写了一些代码来获取列表的 n 元素 让rec n_elem l n =将n与 | 0 -> 将 l 与 | h::_ -> h | _ -> 失败并显示“错误,列表为空” | ...

回答 2 投票 0

List.filter 和 List.mem [已关闭]

我在理解这条特定的线路时遇到问题 让 lst = ["a", "b", "c"]; List.filter(fun(a,_b) -> not(List.mem a lst)) assoc

回答 1 投票 0

编写一个返回列表中所有其他元素的函数

我想编写一个函数,可以返回列表中的每个其他元素,如下所示 ['a' ; 'b'; 'C' ; 'd'; 'e'] 可以返回: ['a' ; 'C' ; 'e'] 我的函数只能与预定义函数 L...

回答 1 投票 0

编译 OCaml .cmm 文件

我编写了简单的 OCaml 代码,例如: 让 rec fib(n: int) = 匹配 n 与 | 0 -> 0 | 1 -> 1 | _ -> fib(n-1) + fib(n-2) 使用 ocamlopt 的 -dcmm 选项,我可以生成以下 .cmm 文件...

回答 1 投票 0

编译器如何确定字符串是否与正则表达式匹配?

我最近一直在学习编译器,更具体地说是 Ocaml 编译器,我想知道编译器如何实际确定字符串匹配哪个正则表达式。它是否为每个re构建一个DFA...

回答 1 投票 0

OCaml 中的交错

我正在尝试创建一个函数来交错一对三元组,例如 ((6, 3, 2), ( 4, 5 ,1)) 并从该交错中创建一个 6 元组。 我做了一些研究,但可以理解如何

回答 2 投票 0

在Ocaml中使用fold_left反转列表内的元组

让 lst 成为一个包含元组的列表,我想反转每个元组(元组的顺序需要相同)。例如: [(a,b);(c,d)] -> [(b,a);(d,c)] 我知道可以用地图来完成: 列表...

回答 3 投票 0

使用fold_left从列表创建元组列表

如何从一个列表创建元组列表,如下所示: [1; 2; 4; 6] -> [(1, 2); (4, 6)] 我想使用函数 List.fold_left 来做到这一点,因为我目前正在尝试学习它,但不知道 h...

回答 3 投票 0

如何在 Ocaml 中将非内置类型转换为字符串?

我正在尝试编写一个模块,将 x:int = if true then 3 else 5 之类的内容转换为字符串 这是我到目前为止的代码 模块 Ast = 结构体 类型典型=布尔| INT 类型 var = A |乙| C | ...

回答 3 投票 0

两个 N^4 集合的快速交集

我正在寻找一种算法,它返回两个给定的 N^4 列表/集合的交集(长度)(更准确地说在 [|0;7|]^4 中)。我不希望得到特定编程语言的答案...

回答 2 投票 0

OCaml for 循环似乎重新执行的次数超出了预期

我有以下功能 让更新 s = 对于 i=0 到 ((Array.length s) - 2) 执行 对于 j=0 到 (Array.length (s.(i))) - 2 做 (s.(i)).(j) <- (s.(i).(j)) + 1; done; done and it...

回答 1 投票 0

如何将字符列表的子列表写为[‘1’; '2'; '3'; ”; ”; '4'; '5'; ”; '6'], 至 = [['1'; '2'; '3']; ['4'; '5']; ['6']]

我目前正在学习 Ocaml,即使我可以创建一个没有空格的列表,如 ['1';'2';'3';'4';'5';'6'],我也无法创建子列表。我找不到我的问题的任何来源,所以感谢您的解释......

回答 1 投票 0

带有 3 个参数的中缀运算符 ocaml

ocaml中是否可以定义一个类似数组集合函数的运算符,可以写成a.(n)<-v? The OCaml manual explains how to define 2-parameters infix operators but not 3-parameters

回答 1 投票 0

List.map 返回意外类型

我正在学习 OCaml (OCaml 5.0.0)。 我定义了下面的函数。 让 make_pair x ls = List.map (fun y -> (x,y)) ls;; 我期望 make_pair 1 ["a","b"];;返回 [(1,"a&qu...

回答 2 投票 0

为什么我的递归在 OCaml 中永远不会终止?

let 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

降级 Dune/Opam 或沙丘构建的解决方法

我刚刚在我的计算机上安装了 ocaml、opam 和 dune,并尝试使用运行一个新项目 $沙丘初始化项目计算器 $ cd 计算器/ $ 代码 . 它创建项目并在 VS 中打开它...

回答 1 投票 0

LLVM API 为 ptr 类型生成无效 IR

我正在使用 LLVM 15,我正在尝试将我自己的语言(在语法方面与 Pascal 非常相似)编译为 LLVM IR,并且我正在使用 Ocaml。 当我尝试创建一个结构并将其主体设置为 ha...

回答 1 投票 0

OCaml 中有返回特定类型值列表的函数吗?

在 Haskell 中,将 listify 与 Data 结合使用可以从深度嵌套结构中提取特定类型的值,而无需使用大量 getter。例如,使用以下代码: {-# LANGUAGE DeriveDataTypeab...

回答 1 投票 0

为什么dune无法识别ppx_jane?

我现在正在用OCaml v4.06编写一个项目,并且我已经安装了ppx_jane v0.11.0。实际上环境是基于docker镜像的。 现在这是沙丘文件 (立柱 (模块解析器)) (ocamllex

回答 1 投票 0

如何按名称和类型搜索 OCaml 函数

在 Haskell 中,查找函数信息主要有两种方法。 Hoogle 和 Stackage 等网站。这些网站提供两种主要类型的搜索: 搜索函数的名称。对于

回答 4 投票 0

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.