gpt4 book ai didi

j - 调用 jconsole 时如何获得不错的输出?

转载 作者:行者123 更新时间:2023-12-05 01:06:12 25 4
gpt4 key购买 nike

我最近开始学习J。
如果发现它在学习一门新语言时能够快速
将一些源代码映射到输出并将其存储以供以后在 Emacs 组织模式中引用。

但是我遇到了神秘的问题 jconsole当我想做评估时。
例如 jconsole --help不起作用。
man jconsole提出了一些关于 Java 工具的内容。这同样适用于谷歌搜索。

例如,我在 temp.ijs 中保存了教程中的这段代码。 :

m =. i. 3 4
1 { m
23 23 23 23 (1}) m

现在当我运行时 jconsole < temp.ijs ,输出为:
      4 5 6 7
0 1 2 3
23 23 23 23
8 9 10 11

理想情况下,我希望输出为:
 4 5 6 7

0 1 2 3
23 23 23 23
8 9 10 11

同样,理想情况下,我希望在不更改源代码的情况下使用它,
即只需将一些标志传递给 jconsole .
有没有办法做到这一点?

最佳答案

我目前正在解决 Emacs 方面的问题,而不是 jconsole 方面。
我用 echo'' 穿插源代码:

(defun org-babel-expand-body:J (body params)
"Expand BODY according to PARAMS, return the expanded body."
(mapconcat #'identity (split-string body "\n") "\necho''\n"))

像这样执行它:
(j-strip-whitespace
(org-babel-eval
(format "jconsole < %s" tmp-script-file) ""))

并假设每个数组的第一行没有对齐
(到目前为止,这是我的经验)。结果如下:
#+begin_src J
m =. i. 3 4
1 { m
23 23 23 23 (1}) m
#+end_src

#+RESULTS:
: 4 5 6 7
:
: 0 1 2 3
: 23 23 23 23
: 8 9 10 11

这是后处理代码:
(defun whitespacep (str)
(string-match "^ *$" str))
(defun match-second-space (s)
(and (string-match "^ *[^ ]+\\( \\)" s)
(match-beginning 1)))
(defun strip-leading-ws (s)
(and (string-match "^ *\\([^ ].*\\)" s)
(match-string 1 s)))
(defun j-print-block (x)
(if (= 1 (length x))
(strip-leading-ws (car x))
;; assume only first row misaligned
(let ((n1 (match-second-space (car x)))
(n2 (match-second-space (cadr x))))
(setcar
x
(if (and n1 n2)
(substring (car x) (- n1 n2))
(strip-leading-ws (car x))))
(mapconcat #'identity x "\n"))))
(defun j-strip-whitespace (str)
(let ((strs (split-string str "\n" t))
out cur s)
(while (setq s (pop strs))
(if (whitespacep s)
(progn (push (nreverse cur) out)
(setq cur))
(push s cur)))
(mapconcat #'j-print-block
(delq nil (nreverse out))
"\n\n")))

关于j - 调用 jconsole 时如何获得不错的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20348167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com