Emacs:在 Racket 模式下关闭 pretty-print

标签 emacs racket pretty-print

我在 Windows 10 上运行 Emacs 24.5.1 并通过 SICP . MIT 编辑器 Edwin 不能正常工作,尤其是在 Windows 上。 Racket 似乎是一个不错的选择。我已经安装了 Racket 和 racket-mode一切似乎都运行良好。但是,racket-mode坚持漂亮地打印我的结果。如何让它以十进制形式打印?

例如,

(require sicp)

(define (square x) (* x x))

(define (average x y)
  (/ (+ x y) 2))

(define (improve guess x)
  (average guess (/ x guess)))

(define (good-enough? guess x)
  (< (abs (- (square guess) x)) 0.001))

(define (sqrt-iter guess x)
  (if (good-enough? guess x)
      guess
      (sqrt-iter (improve guess x)
                 x)))

这会产生诸如
> (sqrt-iter 1 2)
577/408

很多documentation当我在谷歌上搜索“Racket”和“pretty-print”这两个词时出现了,但我没有运气理解它。 Racket 文档似乎通过一些以“pretty-print”开头的变量来控制 pretty-print 。但是没有以 racket- 开头的内容或 prettyM-x 内过来。也许分数形式不是 Racket 认为的 pretty-print ?

最佳答案

使用浮点数 1.0 和 2.0 而不是精确的数字 1 和 2 开始迭代。

文字 1 被读取为精确整数,而 1.0 或 1. 被读取为浮点数。

现在函数/适用于两个精确的不精确数字。如果输入确切的数字,它会产生一个分数(最终会打印在 repl 中)。

那就是您看到的不是 pretty-print 的效果,而是实际结果。该算法仅在浮点数作为输入时有效,因此您可以考虑添加对 exact->inexact 的调用到你的功能。

关于Emacs:在 Racket 模式下关闭 pretty-print ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40965074/

相关文章:

emacs - 如何在 2 个窗口 emacs 中交换缓冲区

emacs - 在 Emacs AutoComplete 中更改建议列表中源的顺序

python - pretty-print 并替换 numpy 数组

java - 在解码期间使用 JAXB 格式化 XML

emacs - 仅在某些模式下的行号

在 Linux 上动态链接到 libc 时调用 `atexit`

scheme - 将字符串列表合并为逗号分隔的字符串

autocomplete - Racket博士有自动完成功能吗?

python - append 从文件读取的 xml 节点会破坏相邻节点的 Pretty_print

datetime - 导出时的组织模式时间戳格式