2014-09-03 70 views
1

我必須學習如何設計程序一段時間。但是一旦我開始使用Emacs學習htdp,我遇到了一些問題。 問題是: 我輸入#lang球拍,但它只是表明:關於球拍:#lang未啓用

> stdin::7: read: #lang not enabled in the current context 
    context...: 
    /usr/share/racket/collects/racket/private/misc.rkt:87:7 
    > racket: undefined; 
    cannot reference undefined identifier 
    context...: 
    /usr/share/racket/collects/racket/private/misc.rkt:87:7 

而且我用「需要」加載路徑。

stdin::30: cannot open module file 
    module path: #<path:/Desktop/htdp/convert.rkt> 
    path: /Desktop/htdp/convert.rkt 
    system error: No such file or directory; errno=2 
    context...: 
    standard-module-name-resolver 
    /usr/share/racket/collects/racket/private/misc.rkt:87:7 

此外它不能工作。

你能幫我解決嗎? P.S我的系統是Fedora20。

+0

您使用的是哪種emacs模式?你安裝了哪個版本的Racket? (如果可能的話,使用download.racket-lang.org中的版本) – soegaard 2014-09-03 08:24:26

+0

如果你正在使用'(require「/Desktop/htdp/convert.rkt」),你可能真的想要'(require'/ home /你的用戶名> /Desktop/htdp/convert.rkt「)'或者只是'(require」convert.rkt「)'如果它與你正在處理的文件在同一個目錄中。 – 2014-09-03 13:14:13

+0

我從racket-lang.org安裝了Racket,我使用paredit作爲Emacs模式。 – 2014-09-04 00:40:39

回答

1

當您從控制檯運行球拍腳本時,您不需要在第一行中定義語言。此標誌

racket -I <language> 

可用於指定從命令行運行時的語言。 #lang racket應該是默認值,因此只需使用racket命令刪除該行並從命令行運行腳本。

+0

我沒有從控制檯運行我的腳本:(我從Emacs運行我的腳本,我想知道「#lang球拍」是否對代碼有影響(如需要「xxx」),main我想解決的問題是我無法加載文件:) – 2014-09-04 00:53:19