组织模式块中的 SML returns it = "stdIn" : string

SML in org-mode block returns it = "stdIn" : string

当我启动 SML REPL 并输入时

print("floor is : " ^ (Int.toString (floor 3.1823)) ^ "\n");

我明白了

floor is : 3
val it = () : unit

即预期行为。但是当我在 Emacs 组织模式源代码块中做同样的事情时:

#+name: sml_test
#+begin_src sml :exports both
print("floor is : " ^ (Int.toString (floor 3.1823)) ^ "\n");
#+end_src

我得到了神秘的(对我来说)

#+RESULTS: sml_test
: val it = "stdIn" : string

机器学习领域的人知道这意味着什么吗?

这可能是 ob-sml 中的错误。如果您访问 *sml* 缓冲区,并在源块上执行 C-c C-c,sml REPL 将获得此输入:

print("floor is : " ^ (Int.toString (floor 3.1823)) ^ "\n");
; "stdIn";

注意那里额外的 "stdIn"。此外,如果你在块上设置 :results output,你应该得到块的标准输出,但我得到与默认 :results value 设置相同的东西(和你得到的一样:神秘的东西我猜这是那个虚假 "stdIn" 的结果——我应该说我对 ML 一无所知,所以对所有这些都持适当大小的盐粒)。我会在 ob-sml github 项目上提出一个问题。