首页 > 解决方案 > 如何使用命令行在 Scheme 中加载可执行文件

问题描述

我正在使用 DrRacket 并hello.scm在 emacs 中生成了一个文件,其中包含以下内容:

 #! /usr/bin/env racket


                ;The first program

 (begin
   (display "Hello, World!")
   (newline))

然后我尝试在终端使用 编译该文件le$ racket hello.scm,并收到以下结果:

  Le-MacBook-Pro:~le$ racket hello.scm
default-load-handler: expected a `module' declaration, but found
 something else
 file: /Users/le/hello.scm
 context...:
 default-load-handler
 standard-module-name-resolver
 module-path-index-resolve
 [repeats 1 more time]
 module-declared?

此外,当我将 emacs 文件的内容复制并粘贴到 DrRacket 并单击Run时,我收到以下消息:

Module Language: only a module expression is allowed, either
    #lang <language-name>
 or
    (module <name> <language> ...)
 in: (begin (display "Hello, World!") (newline))

Interactions disabled.

究竟是什么问题?

标签: schemeracket

解决方案


#lang racket通过在 emacs 文件顶部添加解决了该问题。


推荐阅读