我想写:
(nota E2 82)而不是:
(define E2
(network ()
[sunet <= sine-wave 82]
[out = (+ sunet)]))我知道我可以使用宏来完成这个任务,并尝试编写如下内容:
(define-syntax (nota stx)
(syntax-case stx ()
[(nota x) #'(network ()
[sunet <= sine-wave x]
[out = (+ sunet)])]))但我知道这个错误:
nota: bad syntax in: (nota E2 82)发布于 2016-01-20 18:18:06
最简单的解决办法是
(define-syntax-rule (nota x y)
(define x
(network ()
[sunet <= sine-wave y]
[out = (+ sunet)])))发布于 2016-01-20 21:01:42
好吧,那太糟糕了。您真的不需要编写这个宏;应该有一个为网络提供固定输入的表单。
事实上,的确有。但是..。它没有被记录下来,也没有很好的命名。它目前名为fixed-inputs,但我将把它重命名为network-const,并将其文档化。
谢谢你提醒我做这件事!
约翰
https://stackoverflow.com/questions/34906442
复制相似问题