用作表达式的球拍关键字

The*_*rza 2 syntax keyword racket

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

source.rkt:6:31: #%datum: keyword used as an expression in: #:mode
  #(118 6)
Run Code Online (Sandbox Code Playgroud)

这是代码:

#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)
Run Code Online (Sandbox Code Playgroud)

Sor*_*ase 6

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

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