LINUX.ORG.RU

[scheme][сделайсам] как правильно реализовать контекст?

 


0

0

читаю исходники jscheme (http://norvig.com/jscheme/jscheme.jar)

В Environment.java, контекст реализован как пара scheme-списков -- vars и vals. При этом в комментариях говорится что vars не обязательно заканчивается на null:

> If a variable list ends in a symbol rather than null, it means that symbol is bound to the remainder of the values list.

какой в этом скрытый смысл?

ведь можно, казалось бы, реализовать контекст просто как HashMap.

anonymous

Может быть для реализации функций с переменным числом параметров, список аргументов которых имеет вид (arg1 arg2 ... argn . rest-args), что бы не нужно было лишний объект создавать.

ЗЫ: исходники jscheme не читал, просто предположение.

Begemoth ★★★★★
()

В одной из реализаций, про которую я читал, подобное было сделано для простого вызова функции. Параметры функции в обратном порядке клались в специальный список и когда вызывалась функция, этот список становился списком аргументов.

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