Syntax 用作表达式的Racket关键字

Syntax 用作表达式的Racket关键字,syntax,racket,keyword,Syntax,Racket,Keyword,我试图编写一个程序,在源代码中添加字符串“hello world”。source.rkt中的文件名。它给了我这个错误: source.rkt:6:31: #%datum: keyword used as an expression in: #:mode #(118 6) 代码如下: #lang racket (provide (all-defined-out)) (define out (open-output-file "source.rkt"

我试图编写一个程序,在源代码中添加字符串“hello world”。source.rkt中的文件名。它给了我这个错误:

source.rkt:6:31: #%datum: keyword used as an expression in: #:mode
  #(118 6)
代码如下:

#lang racket

(provide (all-defined-out))

(define out (open-output-file "source.rkt"
                             [#:mode 'text               
                              #:exists 'can-update]))

(write "hello world" out)

(close-output-port out)

括号不是文字。它们的意思是可选的。因此,正确的语法是:

(define out (open-output-file "source.rkt"
                              #:mode 'text               
                              #:exists 'can-update))

有没有更好的解决方案可以让我在DrRacket更新时看到它的代码?我不太理解这个问题,也不认为它与当前的问题有关。也许你应该在一篇新文章中提出一个新问题,并提供更多细节?