ocaml 相关问题

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

确保OCaml中递归地记录类型的所有内容的类型是正确的

我不确定是否有更好的方法可以做到这一点,但我想知道如何确保所有类型的记录都是准确的。我尝试了下面的代码(对...进行递归函数)

回答 1 投票 -1

使用FParsec解析自定义中缀运算符+实现

我对“真正的解析器”(例如F#或Haskell)解析自定义运算符的方式有点困惑。对于“普通”语言,我们只需定义一个AST节点,在该节点上预定义...

回答 1 投票 1

纯函数只有一个可能的实现吗?

在下图中有一个快速解释,为什么纯函数似乎只有一个可能的实现。我真的不明白,因为(++):('a - >'b) - >('a - > 'b) - >'...

回答 2 投票 2

使用OCAML中的链接列表队列删除

我正在尝试在OCAML中实现单链表(队列),这非常困难,而且不像我想象的那样直观。让我首先说明我的队列的不变量......

回答 1 投票 0

创建一个列表,其中包含从元组列表中提取的数据 - 类型问题

我的数据是这样排序的:([(x1,y1,z1);(x2,y2,z2);(x3,y3,z3); ........;(xn,yn,zn)] ,e:int)示例:我尝试创建一个列表[x1; x2; x3; ....; xn; e],其中只找到一次值。我开始......

回答 1 投票 -1

模式匹配期间的Ocaml语法错误

这是我的代码:type mass = Inf | P的int让som = fun | Inf _ | _ Inf - > Inf | (P a)(P b) - > P(a + b)我得到以下错误:第5行,字符0-1:错误:语法错误我不...

回答 1 投票 -1

OCaml - 为什么Array引用是默认的

我知道在OCaml中我们默认不能更改变量的值。例如,我们不能执行以下操作:让a = 1; a = 2;为此,我们添加关键字ref:let a = ref 1; a:= ...

回答 1 投票 0

为什么在REPL中0.0 == 0.0为false,但在本机执行时为true?

当我在交互式REPL中执行该表达式时,0.0 == 0.0为false:$ ocaml OCaml version 4.02.3#0.0 == 0.0 ;; - :bool = false#0.0 = 0.0 ;; - :bool = true但如果我......

回答 1 投票 6

在给定OCaml中的条件的情况下递归删除列表中的元素?

我想从列表中删除大于数字n的元素。让rec remove_greater lst n =我对OCaml很新,我不知道如何解决这个问题,也不知道如何删除元素......

回答 2 投票 -1

如何实现类型(string * int)list - >(string * int list)列表的OCaml函数,其中输出列表是输入项中的项的计数

我的问题是如何将字符串和整数对的列表转换为字符串和整数列表对的列表。例如,如果我有列表[(“hello”,1); (“嗨”,1); (“你好”,1); (” ...

回答 1 投票 -1

以两种不同的方式编写函数时OCaml的奇怪行为

我有以下代码(有效):输入a = A of int let print = ref(fun _ - >())let fx =!print(A x)但是以下不起作用:let print = ref( fun _ - >())输入a = A ...

回答 1 投票 2

何时应该在OCaml中使用可扩展的变体类型?

在引入可扩展变体类型之前,我参加了OCaml课程,我对它们知之甚少。我有几个问题:(这个问题被删除,因为它吸引了“不...

回答 1 投票 6

用于查找固定点的OCaml函数

我有一个OCaml函数用于查找不动点:>> let rec fix f x = let x'= f x in if if x = x'then x else fix f x';; (系统消息)val修复:('a - >'a) - >'a - >'a = ...

回答 1 投票 0

如何在OCaml中选择两个实现代码

我已经在github存储库中上传了一个非常小的例程,我有一个学校项目。规范说我们可以启用或禁用组件。我来自c世界,我们......

回答 1 投票 0

为什么ocaml中函数定义的替代方法给出了不同的结果?

windows 10上的ocaml 4.01.0 + ocp1 ocaml的新手,我在toploop中遇到了一个有趣的行为:让rec fibo n = function 0 - > 1 | 1 - > 1 | _ - > fibo(n - 1)+ fibo(n - 2);; ...

回答 2 投票 1

同样让绑定导致不同的编译结果

输入'a tree = |叶子'a | 'a *'节点'树''一棵树让rec foldtree init op = function |叶c - > op c init init |节点(c,l,r) - > op c(foldtree init op l)(...

回答 1 投票 0

从链接队列中删除所有出现的元素

我的任务是创建一个函数,删除由以下内容定义的链接队列中所有键的出现:type'a qnode = {v:'a;可变下一个:'一个qnode选项}输入'一个队列= ...

回答 1 投票 -1

如何制作运营商`

我输入'a edge = {from:'a;目的地:'a; weight:int}我希望Printf.printf“%b \ n”({from = 0; destination = 8; weight = 7} <{from = 100; destination = 33; weight = -1}).. 。

回答 1 投票 2

表达式预期类型单位,但它已经做到了

let _ = try(“hello”;;())with | _ - > print_endline“hi”编译这个告诉我(“你好”;())'应该有类型单位'实际上,我得到了同样的警告,这个代码让_ =“你好”; ...

回答 1 投票 0

使用WSL(UBUNTU)在Windows 10上安装OCAML。 bwrap问题(BubbleWrap)

我是Linux和OCAML的新手。我认为让OCaml在Windows上运行并不是直截了当的。我找到了这个链接:https://www.cs.umd.edu/class/spring2018/cmsc330/ocamlInstallationGuide ....

回答 1 投票 1

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