org-mode块中的SML返回it =“stdIn”:string

时间:2017-01-13 03:21:08

标签: emacs org-mode sml

当我启动SML REPL并输入

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

我得到了

floor is : 3
val it = () : unit

即预期的行为。但是当我在Emacs org-mode源块中执行相同的操作时:

#+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

ML世界的任何人都知道这可能意味着什么吗?

1 个答案:

答案 0 :(得分:3)

这可能是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项目上打开一个问题。