Scheme 如果我有:(应用f';(x1 x2 x3…xn))和I';I’我想把它改成宏扩展
我有Scheme 如果我有:(应用f';(x1 x2 x3…xn))和I';I’我想把它改成宏扩展,scheme,Scheme,我有(apply f'(x1 x2 x3…xn)),我想将其更改为宏扩展:(f x1 x2 x3…xn)。会发生什么样的问题?如果您正在转换 (define (my-apply f args) (apply f args)) 到 这样看来就足够简单了。在这种情况下,最大的陷阱是您必须记住不要引用传递给宏的列表 >(my-apply + '(1 2 3)) >6 >(my-other-apply + '(1 2 3)) >ERROR syntax-error: "
(apply f'(x1 x2 x3…xn))
,我想将其更改为宏扩展:(f x1 x2 x3…xn)
。会发生什么样的问题?如果您正在转换
(define (my-apply f args)
(apply f args))
到
这样看来就足够简单了。在这种情况下,最大的陷阱是您必须记住不要引用传递给宏的列表
>(my-apply + '(1 2 3))
>6
>(my-other-apply + '(1 2 3))
>ERROR syntax-error: "(+ quote 1 2 3)"
>(my-other-apply + (1 2 3))
>6
你还没有接受其他8个问题中的任何一个。他们都不是你问题的正确答案吗?如果(其中一些)是正确的,请花时间仔细阅读并接受这些正确答案(只需在答案旁边的“V”形图标上打勾即可)。
>(my-apply + '(1 2 3))
>6
>(my-other-apply + '(1 2 3))
>ERROR syntax-error: "(+ quote 1 2 3)"
>(my-other-apply + (1 2 3))
>6