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 ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.