История изменений
Исправление Norgat, (текущая версия) :
Да, пожалуй использовать макрос push-pl - лучшее решение, спасибо.
Тут одна проблема этого макроса дошла до меня:
(setq pl '())
(defun tt (pl)
(push-pl pl "g" 2))
(tt pl)
и pl тут будет nil. Так что push-pl ограничен только зоной видимости объявления (setq pl ...). Если нужно выйти за неё, то придётся протаскивать значения pl в функциональном стиле через возвращаемые функциями значения.
Но, если pl будет глобальной переменной, то всё ок должно быть (если не перекрывать её локальной переменной).
P.S. наверно самым простым, в этой ситуации, будет использование (setq pl (list nil nil)). Иначе количество костылей или ограничений будет слишком велико.
Исправление Norgat, :
Да, пожалуй использовать макрос push-pl - лучшее решение, спасибо.
Тут одна проблема этого макроса дошла до меня:
(setq pl '())
(defun tt (pl)
(push-pl pl "g" 2))
(tt pl)
и pl тут будет nil. Так что push-pl ограничен только зоной видимости объявления (setq pl ...). Если нужно выйти за неё, то придётся протаскивать значения pl в функциональном стиле через возвращаемые функциями значения.
Но, если pl будет глобальной переменной, то всё ок должно быть (если не перекрывать её локальной переменной).
Исправление Norgat, :
Да, пожалуй использовать макрос push-pl - лучшее решение, спасибо.
Тут одна проблема этого макроса дошла до меня:
(setq pl '())
(defun tt (pl)
(push-pl pl "g" 2))
(tt pl)
и pl тут будет nil. Так что push-pl ограничен только зоной видимости объявления (setq pl ...). Если нужно выйти за неё, то придётся протаскивать значения pl в функциональном стиле через возвращаемые функциями значения.
Но, если pl будет глобальной переменной, то всё ок должно быть.
Исходная версия Norgat, :
Да, пожалуй использовать макрос push-pl - лучшее решение, спасибо.
Тут одна проблема этого макроса дошла до меня:
(setq pl '())
(defun tt (pl)
(push-pl pl "g" 2))
(tt pl)
и pl тут будет nil. Так что push-pl ограничен только зоной видимости объявления (setq pl ...). Если нужно выйти за неё, то придётся протаскивать значения pl в функциональном стиле через возвращаемые функциями значения (хотя, если поиграться с квотированием и eval, то, думаю, можно обойти и эту проблему).
Но, если pl будет глобальной переменной, то всё ок должно быть.