Я никогда не использовал никаких других реализаций, кроме GIMP script-fu, и я даже новичок в схеме GIMP. Так что, возможно, я ошибаюсь. Однако в консоли Script-Fu не работает следующее:
(define x 13)
(define s 'x) ; or (define s `x)
,s => Error: eval: unbound variable: unquote
так же
(unquote s) => Error: eval: unbound variable: unquote
Мне кажется, что "," планировалось сработать, но раскаты не реализованы. Если да, то как решить следующую проблему?
(define x 13)
(define y 7)
; define procedure to swap x and y
(define (swap)
(let ((t 0))
(set! t ,'x)
(set! x ,'y)
(set! y t)
)
)
Это должно выполняться несколько раз, поэтому (set! t x)... не сработает.
unquote
работает не так, как вы думаете, в любой реализации. Кроме того, я не понимаю, что вы подразумеваете под(set! t x)
, не будет работать. - person Chris Jester-Young   schedule 07.10.2013unquote
не являетсяeval
, и для этого также не следует использоватьeval
. - person Chris Jester-Young   schedule 07.10.2013(set! t x)
, но это не сработало. Он поменял местами значения только один раз и никогда больше. Я думал, что значения x и y были оценены во время определения. Сейчас еще раз попробовал, работает. Не знаю, что я сделал не так. Спасибо. - person FERcsI   schedule 08.10.2013