问题标签 [ocaml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
5137 浏览

emacs - 用 Lisp 以外的语言编写 Emacs 扩展

我想使用一个现有的应用程序(用 OCaml 编写)并为它创建一个 Emacs“接口”(例如,Emacs GDB 模式)。我宁愿在不编写大量 Lisp 代码的情况下做到这一点。在 MVC 术语中,我希望视图是 Emacs,但模型和控制器保持(主要)OCaml。

有人知道用 Lisp 以外的语言编写 Emacs 扩展的方法吗?这可以采用以某种其他语言绑定到 Emacs 扩展 API 的形式(例如,使 OCaml 成为一流的 Emacs 扩展语言)或 Emacs 交互模式,例如,扩展具有可以写入的管道Emacs Lisp 表达式并读出结果值。

0 投票
2 回答
8346 浏览

parsing - 解决 yacc/ocamlyacc 中的 reduce/reduce 冲突

我正在尝试解析 ocamlyacc 中的语法(与常规 yacc 几乎相同),它支持没有运算符的函数应用程序(如在 Ocaml 或 Haskell 中),以及二进制和一元运算符的正常分类。我遇到了与“-”运算符的减少/减少冲突,该运算符可用于减法和求反。这是我正在使用的语法示例:

问题是当你得到一个像“a - b”这样的表达式时,解析器不知道它是否应该被简化为“a(-b)”(b的否定,然后是应用程序)或“a - b”(减法)。减法减法是正确的。我如何解决冲突以支持该规则?

0 投票
3 回答
3514 浏览

ocaml - 在 OCaml 中处理循环依赖

我正在为一种实验语言编写解释器。该语言的三个主要结构是定义、语句和表达式。定义可以包含语句和表达式,语句可以包含定义和表达式,一种表达式可以包含语句。我使用联合类型来表示所有这些,因此我可以轻松地对它们使用模式匹配。理想情况下,我想将这些代码放在不同的文件中,但 OMake 抱怨循环依赖问题。据我所知,不允许跨模块进行循环类型定义。

我知道解决这个问题的唯一方法是一次定义所有三种类型:

似乎这要求类型的所有代码都在同一个文件中。有没有办法解决?您如何处理代码中的循环定义?

0 投票
2 回答
858 浏览

linux - GODI安装问题

我正在尝试在 linux (Ubuntu) 上安装GODI 。它是 ocaml 语言的库管理工具。我之前实际上已经安装过这个——两次,但不久前——没有任何问题——我记得——但这次我无法弄清楚我错过了什么。

我已将正确的目录添加到路径中,它们显示为 quick echo $path,并godi_confdir报告为:

(......并且该目录存在,并且存在 godi.conf 文件)。所以,我无法弄清楚为什么./bootstrap_stage2不起作用。

0 投票
4 回答
3127 浏览

c# - 在 C# 中表示参数化枚举的最佳方法?

是否有任何好的解决方案来表示参数化枚举C# 3.0?我正在寻找像OCamlHaxe这样的东西。我现在只能想到具有简单枚举字段以便于切换的类层次结构,也许有更好的想法?

请参阅下面其中一个回复中的 Ocaml 示例,以下是 Haxe 代码:

0 投票
11 回答
14876 浏览

linux - 知道 OCAML IDE 吗?

知道 OCAML/CAML IDE 吗?尤其是在 Linux 上运行的?

0 投票
3 回答
524 浏览

ocaml - 这是 OCaml 中二次贝塞尔函数的合理实现吗?

一位朋友在他的代码库中发现了一个二次贝塞尔曲线函数,该函数使用开关表的巨大老鼠巢来执行计算。他要求我找到一个简短的表达式,让他能够替换巨大的代码块。

为了满足两种不同的好奇心,我想我会尝试在 OCaml 中实现该功能。我是一个非常新手的 OCaml 程序员,我也不熟悉这个函数,而且这个具体的实现很难通过谷歌得到。

非常感谢对函数的性能/正确性及其实现的批评。

二次贝塞尔曲线的实现:

0 投票
5 回答
10004 浏览

ocaml - 如何在 OCaml 中获取堆栈跟踪?

如果您要求恰到好处,Objective Caml 语言只会生成堆栈跟踪 - 字节码和本机代码的要求是什么?

0 投票
4 回答
27841 浏览

f# - F# 更改为 OCaml

F# 是从 OCaml 派生的,但缺少或增加了哪些主要项目?具体来说,我很好奇可用于学习 OCaml 的资源是否对想要学习 F# 的人也有用。

0 投票
4 回答
3299 浏览

functional-programming - 从 Ruby、Lisp、Haskell 和 Erlang 转向 Ocaml

我一直在阅读有关 Ocaml 始终如一的速度、快速原型设计能力和出色的内存管理的信息,并决定接受它。

因为我已经掌握了 Ruby、*lisp、Haskell 和 Erlang,所以我特别感兴趣的是我应该在 Ocaml 中注意哪些违反 KISS 的特性。

如果您以上述语言的背景开始 Ocaml,那么最令人沮丧的事情是什么?你是如何解决这个困难的?什么类比帮助你进入了语言的流程?

我也很想知道你是否已经做的不仅仅是简单地学习了 Ocaml,并且实际上已经为你的大部分编码问题转换了它。