问题标签 [utop]
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.
ocaml - OCaml的utop:导入外部模块
我有兴趣将Angstrom,一个解析组合器库引入我的一个项目。
我将 Angstrom 安装到我的系统中opam
,如下所示:
我还参考有问题的模块使用以下方法成功编译了项目ocamlfind
:
令人惊讶的是,我无法将 Angstrom 导入utop
repl。类似的命令#open Angstrom
指示绑定到模块名称的值。我已经从 repl 中搜索了模块导入的文档,但我没有找到我正在寻找的结果。
从中引用外部模块的最佳方法是utop
什么?
ocaml - ocaml中float的绝对值
当我使用 functionabs_float
时,Merlin(在 emacs 中运行)告诉我:
Warning 3: deprecated: Core.Std.abs_float
[since 2014-10] Use [Float]
(不过,代码仍然可以编译。)这是想告诉我什么?我尝试过 Float.abs 和类似的变体但没有成功。当我尝试在 utop 中时,我得到#require "Float"
了错误。open Float
No such package
unbound module
我知道自己编写一个绝对值函数是微不足道的,但我仍然有兴趣知道如何以“正确”的方式做到这一点。
ocaml - 将 utop 与本地 ocaml 构建一起使用?
我已经编译了 ocaml 4.04.0 的自定义版本(其他人编写的)。我可以使用 rlwrap 和 ledit 运行它并与之交互,但我宁愿使用 utop 运行它。(我不需要自动完成;命令编辑在 utop 中比在 rlwrap 或 ledit 中更好。)
默认情况下,utop 显然依赖于 opam,因为它运行使用opam switch
. 但是,我很难找到任何关于 utop 和 opam 之间关系的文档,或者关于如何让 utop 运行 opam 尚未设置的 ocaml 版本的文档。 man utop
, opam --help
, 和重复的网络搜索一无所获。虽然这似乎是个坏主意,但我尝试用自定义可执行文件简单地替换 .opam/4.04.0/bin 中的文件 ocaml,但是内置到可执行文件中的额外包当时不可用,所以我猜测什么 utop运行显然是错误的。我尝试使用自定义 ocaml 文件作为参数运行 utop:utop ./ocaml
. 根据 utop 手册页,我认为这不起作用,但事实并非如此。下一步似乎是阅读 utop 源代码,但作为 ocaml 的新手,我不愿意进行这种潜水,而且似乎没有必要。
如何使用自己的 ocaml 可执行文件运行 utop?
ocaml - 尝试在 Fedora 26 中为 OCaml 安装 utop;安装 LWT 时出错
我目前安装了 Fedora 26,并且安装了以下软件包:
sudo dnf install opam ocaml gcc gcc-c++ m4 make ocamldoc sqlite-devel libcurl-devel fuse-devel zlib-devel ocaml-camlp4-devel redhat-rpm-config
这是我目前尝试安装 utop 时遇到的错误:
我应该怎么办?
谢谢!
ocaml - 更改顶部输出宽度
当显示长列表和其他大值时,utop 将它们包装在大约 80 列,即使我的终端窗口更宽。如何更改输出宽度?
我发现唯一可能提供解决方案的是UTop.size
,它具有 type LTerm_geom.size React.signal
,并且似乎正确记录了我的终端窗口的大小。在此示例中,我的终端窗口的尺寸为 164x37:
但是, 的值cols
似乎不会影响值的显示方式。例如,这是从同一会话中复制的(显示时带有换行符):
ocaml - 测试是否在 utop 中运行
我在其中添加了几行,.ocamlinit
以使 utop 提示不那么碍眼:
(我不明白那里发生的一切......我只是发现它在网上发布并进行了调整。)
但是现在如果我使用常规的ocaml
顶层,我会得到:
.ocamlinit
除非我正在运行 utop,否则我可以添加测试以跳过这些行吗?我可以将它们放在仅由 utop 加载的附加文件中吗?
ocaml - 在 utop 中很好地打印值
Haskellghci
可以很好地打印属于实现Show
typeclass 的类型的任何值。OCaml 中是否有任何等价物可以utop
很好地自动打印用户定义类型的值?输入x |> M.to_string
每一行都相当乏味……</p>
ocaml - OPAM 和 OCaml 安装
我在设置 OCaml 环境时遇到了一些问题,我正在关注此页面:
https://github.com/realworldocaml/book/wiki/Installation-Instructions
但是,我遇到了一些我无法解决的问题。我在 macOS 10.12.5 上并且正在使用 zsh。
Brew 安装 opam 时没有错误或警告。我相信我的问题在于环境变量(??)不同步。以下是我运行一些建议的命令时的一些输出:
opam开关:
评估“opam 配置环境”:
opam 安装基础:
出于问题的目的,我展示了我安装基础的尝试,但最终想安装核心、utop、绿洲等......非常感谢任何帮助!
编辑:当我应该使用反引号(`)时,我使用了撇号(')。我想一个没有经验的shell用户的证据......
ocaml - 如何在 utop 中重新加载 OCaml 模块
是否可以在 OCaml 的utop中重新加载模块?
在使用 OCaml 代码时,我的开发工作流程是这样的:
首先,在 Vim 中打开一个文件example.ml
并破解它。切换到另一个终端并运行utop
. 从内部utop
,使用指令加载代码#use "example.ml";;
。
回到 Vim 并在代码中进行一些更改。更改代码后,我想尝试新的更改。返回utop
并重新运行指令#use "example.ml"
。
如果有一个 #reload
指令可以重新加载所有以前加载的模块,那就太好了,但似乎没有。 有什么方法可以轻松地重新加载所有以前加载的模块?
理想情况下,这将类似于 GHCi 的:reload
命令。