2

我必须学习如何设计程序一段时间。但是一旦我开始使用我的 Emacs 学习 htdp,我遇到了一些问题。问题是:我输入了 #lang racket ,但它只是显示:

  > 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

我使用'require'来加载路径。

 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

它也无法工作。

你能帮我解决吗?PS我的系统是Fedora20。

4

2 回答 2

2

当您从控制台运行球拍脚本时,您不需要在第一行定义语言。这面旗帜

racket -I <language>

从命令行运行时可用于指定语言。#lang racket应该是默认值,所以只需删除该行并使用该racket命令从命令行运行您的脚本。

于 2014-09-03T03:11:31.063 回答
0

从链接https://docs.racket-lang.org/guide/Module_Syntax.html#%28part._hash-lang%29

它说:

模块文件开头的#lang 是模块形式的简写,就像 ' 是引用形式的简写。与 ' 不同,#lang 简写在 REPL 中不能很好地工作,部分原因是它必须以文件结尾结尾,还因为 #lang 的简写扩展取决于封闭文件的名称。

于 2019-03-22T07:11:00.467 回答