用作表达式的球拍关键字

时间:2016-02-07 00:37:38

标签: 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"
                             [#:mode 'text               
                              #:exists 'can-update]))

(write "hello world" out)

(close-output-port out)

1 个答案:

答案 0 :(得分:6)

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

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