我希望能写下来:
(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)
答案 0 :(得分:5)
最简单的解决方案是
(define-syntax-rule (nota x y)
(define x
(network ()
[sunet <= sine-wave y]
[out = (+ sunet)])))
答案 1 :(得分:3)
好的,那太糟糕了。你真的不应该写这个宏;应该有一个向网络提供固定输入的表格。
事实上,有。但是......它没有记录,也没有很好的命名。它目前被称为fixed-inputs
,但我要将其重命名为network-const
,并将其记录下来。
感谢您提示我!
约翰