用于重命名线程代码的宏不起作用

时间:2016-08-23 07:45:56

标签: scheme racket

我正在尝试创建一个允许我使用' thr'来调用线程宏的宏。名字而不是'〜>'码。我试过了:

(require threading)
(define-syntax-rule (thr body ...)
  (require threading)
  (~> body ... ) )

(thr " checking " string-trim println)

但它不起作用。错误是:

 define-syntax-rule: too many forms in: (~> body)

我也尝试过只有一个身体的声明,但它仍然不起作用:

(define-syntax-rule (thr2 body )
  (require threading)
  (~> body ) )

1 个答案:

答案 0 :(得分:0)

在Racket中执行此操作的最短路径是:

(define-syntax thr (make-rename-transformer #'~>))