2014-11-08 22 views
1

我一直在嘗試一些DrRacket的語言變體,並且在其中的一個Lazy Racket中,REPL總是打印代碼來生成帶構造函數的數據,而不是打印出文字。例如:如何在Racket中禁用「構造器式打印」?

> '(this is dumb) 
(list 'this 'is 'dumb) 

> '(FFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU- . CK) 
(cons 'FFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU- 'CK) 

有文檔的此功能哪怕一點點:

http://docs.racket-lang.org/drracket/output-syntax.html

不過,雖然文檔描繪輸出模式選擇,它忽視了說怎麼改。有人知道嗎?

回答

1

它在菜單中:語言 - >選擇語言。如有必要,請選擇「顯示詳情」。然後你可以選擇輸出風格。你似乎使用構造函數;設置爲打印。

enter image description here

+0

呵呵,我發現那個對話框實際上並不是一個真正的操作系統級別的窗口,我試過使用⇧⌘+空格,它只是想選擇頂級DrRacket窗口,這是一個無賴,因爲我討厭手動裁剪我的截圖; ;-)(讓我想起使用Spy ++調試Swing程序的日子,Swing windows不是' t真正的窗戶,所以它基本上不可能)。 – 2014-11-08 17:19:46

+0

這可以通過命令行REPL來完成嗎?我注意到,命令行REPL在幾個版本之前從「寫入」切換到「打印」,我不介意在使用EMACS中的Racket時,這些刻度線會消失。 – 2014-11-08 17:42:05

0

即完全由您DrRacket語言設置來控制。例如,如果您通過使用#lang lazy(和「確定來自源的語言」)選擇了Lazy Racket,則默認輸出樣式爲print。但是,如果從語言菜單中的其他語言部分選擇了懶惰的球拍」,那麼默認的輸出格式是構造函數。

正如uselpa說,請單擊顯示詳細信息見效果的輸出風格。

由方式,「從源頭上確定語言」幾乎總是比其他選擇語言的方式更受歡迎

+0

我不知道#懶惰。我認爲從菜單中選擇它應該會自動添加#lang懶惰線。你有沒有想過如何從命令行開始從REPL進入#lang懶惰? – 2014-11-08 17:36:31

+0

@ ThrowawayAccount3Million不,你不應該使用'#lang'行,除非你使用「確定源語言」。這就是爲什麼你應該總是使用「確定源語言」。 – 2014-11-08 17:38:46

+0

至於命令行REPL,請使用'racket -I lazy'。 – 2014-11-08 17:40:32