ocaml相关内容

在Ocaml中动态生成具有模式匹配的函数

我正在尝试编写一个函数,该函数可以动态生成另一个具有动态指定模式以匹配的函数,而我对如何上手一无所知. 基本上,顶级函数使用字典,其中键与值列表匹配,我想返回一个函数,该模式将那些键与值匹配. 例如,我会传入像 [("a",[1; 2; 3]);这样的字典.("b",[3])] ,我会得到一个看起来像 的函数 功能|"a"->[1; 2; 3]|"b"->[3] 有人可以指出我 ..
发布时间:2021-05-09 20:25:02 其他开发

模式匹配和构造函数

编写这种模式匹配时为什么会出错: type t = int的A |浮点数B令f =函数|(A i | B f)->真的|_->错误的 或 让f =函数|我ff真的|_->错误的 错误:变量f必须出现在此|的两边.模式 让f =函数|(A i | B i)->真的|_->错误的 或 让f =函数|我B i->真的|_->错误的 错误:此模式与float类型的int类型的值匹 ..
发布时间:2021-05-09 20:24:06 其他开发

Ocaml-代码的运行时编译为字符串

我想解析并编译我在运行时编写的函数,例如,我在运行时生成了以下字符串: let str ="fun x y z->[X;y;z;]" 我正在寻找可以让我做类似的事情的东西: let myfun = eval str(* eval返回字符串中代码返回的值,因此myfun将具有以下类型:'a->'a->'a->'一个列表*) 在OCaml中有没有办法做到这一点?我遇到了Dynlink, ..
发布时间:2021-04-23 19:57:38 其他开发

Ocaml:使用bfs的最长路径

问题如下:给定定向加权图,起始节点,终止节点和数字k,验证是否存在从起始节点到终止节点的长度至少为k的路径. 这是我写的代码,它是正确的,但仅在特定图中显示.例如,带有 weights1 的 g1 如下: x :: path)(List.filter(函数x-> not(List.mem x路径))(succ(List.hd路径)))在let rec aux last_node =函数中[]-> ..
发布时间:2021-04-16 19:08:31 其他开发

使用OCaml警告属性禁用警告8:不完全匹配

我正在尝试编写类似于以下内容的代码: let [a;b] =(* 身体 *)[1;2] 我只想针对模式 [a;b] ,而不是身体或容身之外的任何物品.我尝试将警告属性设置为禁用警告,但以下任何一项均无效: let [@警告"-8"] [a [@警告"-8"]; b [@警告"-8"]] [@警告"-8"] =[1; 2] [@警告"-8"][@@ ocaml.warning"-8"] ..
发布时间:2021-04-12 19:28:42 其他开发

如何在OCaml中进行简单的GET请求?

我正在尝试做一些应该很简单的事情:向URL发出GET请求.但是,当我搜索如何执行此操作的示例时,通常会遇到类似有人知道如何使用OCaml发出简单的HTTP请求吗?我是OCaml新手,有一些Haskell经验. 注意: 使用最低级别的OCaml的解决方案将是理想的.我已经看过使用过的Cohttp库,但是我对本机(?)HTTP OCaml库或类似的东西更感兴趣. 作为对@antron ..
发布时间:2020-11-25 00:00:43 其他开发

如何从函数返回一流模块的嵌套类型的实例?

上下文: 我正在尝试使用一流的模块在OCaml中实现类似OOP的可观察模式.我有一个包含模块列表的项目,并希望通过观察扩展它们而无需更改.为了最大程度地减少代码重复,我创建了 Subject 模块,并计划将其用作此扩展的通用方式的一部分(在项目上下文中).我声明了三种模块类型: 观察者: module type OBSERVER = sig type event type ..
发布时间:2020-11-13 05:45:35 其他开发

Ocaml中的表达

我想了解表达式在Ocaml中的工作方式. 例如,我有: type expr = Int of int | Var of string | Sum of expr * expr | Diff of expr * expr | Mult of expr * expr | Div of expr * expr 如何识别元素是否为表达式? 我想到了类似expr -> expr ..
发布时间:2020-11-11 19:29:06 其他开发

在其他函数ocaml中处理递归函数

如果我在Ocaml函数内部有一个或多个递归函数,如何在不退出主函数的情况下调用它们,而将它们的值作为主函数的返回值? 我是Ocaml的新手,所以我会尽力向我解释一下... 如果我有: let function = let rec recursive1 = ... ... let rec recursive2 = ... ... 如何在function中称呼它们为“嘿,您看到 ..
发布时间:2020-11-11 19:27:23 其他开发

F#中的OCaml样式通用类型参数的语法是什么?

根据此答案,F#支持OCaml样式类型参数.问题中的示例是: type 'a NestedList = List of 'a NestedList list | Elem of 'a 但是,我在F#文档的任何地方都找不到该语法,而且我也无法让F#编译器接受我给出链接的答案中的语法. 编译器不接受使用多个参数的尝试: type ('a * 'b) SomeType = ('a * ' ..
发布时间:2020-11-03 00:54:25 其他开发

如何使OCaml编译器报告未使用的功能?

我想知道是否有任何方法可以使OCaml编译器报告有关未使用的功能的警告?我用谷歌搜索,但是关于这个功能讨论的话题不多。 特别是,在下面的程序中,有两个函数“ foo”和“ bar”被声明,但在“ _”函数中未使用“ bar” 。因此,我认为OCaml编译器应将“ bar”报告为未使用的函数。 let foo xy = x + y let bar xyz = x + y + z ..
发布时间:2020-10-07 00:03:08 其他开发

带字符列表的OCaml对int

我正在使用带有原型remaining thelist的函数,该函数需要具有签名val remaining : char list -> int * char list = .我是Ocaml的新手,我不明白如何使Ocaml函数仅接受一个列表,并同时输出一个int和一个列表.这是我目前正在使用的代码. let rec remaining thelist= match thelist w ..
发布时间:2020-06-26 13:51:39 其他开发

在ocaml中进行凯撒密码检查

我想实现一个给定两个字符串s1和s2的检查功能,该功能将检查s2是否为caesar cipher of s1.界面必须看起来像string->string->bool. 问题是我不允许使用除String.length之外的任何字符串函数,那么我该如何解决呢?我不允许任何list array,iterations.仅recursions和pattern matching. 请帮助我.而且 ..
发布时间:2020-05-19 19:23:03 其他开发

这里的语法错误到底是什么?

我正在尝试编写一个函数,该函数将返回列表中的第二个最小数字.我不断收到语法错误,但我无法真正查明问题所在.我可以在这方面寻求帮助吗? 已删除的代码 解决方案 您忘记使用in关闭 local let绑定.正确的(和缩进的)代码应为: let second_smallest_helper1 lst= let second_smallest_helper2 currentMini ..
发布时间:2020-05-19 19:22:52 其他开发

ocamllex regex语法错误

我有一些基本的ocamllex代码,由我的教授编写,似乎还不错: { type token = EOF | Word of string } rule token = parse | eof { EOF } | [’a’-’z’ ’A’-’Z’]+ as word { Word(word) } | _ { token lexbuf } { (*module String ..
发布时间:2020-05-19 19:22:45 其他开发

如何正确计时ocaml程序?

let t = Unix.gettimeofday() let rec nothing i = match i with | 1000000000 -> 1 | _ -> nothing (i+1) let () = Printf.printf "%d %fs\n" (nothing 0) (Unix.gettimeofday() -. t) 我使用命令 ocamlc uni ..
发布时间:2020-05-19 19:22:38 服务器开发