LINUX.ORG.RU
Sorry, это был Я. Забыл перелогиниться ;)
xTERM ★★
()
Хм. Поменял прямую кавычку ' на обратную ` - работает.

ВОПРОС №2: Это что, во всех Схемах так, или только в Guile?

ВОПРОС №3: Как сделать бесконечное число параметров в макросе (потипа &rest в Лиспе)?

xTERM ★★
()
В gimp "из коробки" не guile, а tinyscheme, насколько мне известно.
anonymous
()
Ну просто правила «квазикавычек» R{5,6}RS именно такие, а `'(string-append ,a ,b)` — это фейл :-)
Sphinx ★★☆☆
()
"`" -- это сокращение для quasiquote. Из списка, экранированного quasiquote (в отличие от обычного quote) можно выключать квотинг для элементов при помощи unquote (сокращение -- ",").

Прием нескольких элементов в функции происходит так:

(define (sum-all . params) (map + params))

или так:

(define sum-all (lambda params (map + params)))

Вот так в макрос:

(define-macro (sum-macro . params) `(map + ,@params))

Запись ",@" здесь разворачивает список

swizard
()
А зачем здесь макросы? Не проще ли:

(define ~ string-append)

stassats ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.