Мне интересно, какая из следующих функций является менее вычислительной.
Фон: у меня есть триггерный сигнал, и этот сигнал запускает правило, которое вызывает мою функцию, которая добавляет 1 к каждому элементу определенного списка. Поскольку этот сигнал запуска посылается довольно часто, мне интересно, какую из следующих функций я бы предпочел.
Функция 1:
;?lon = list of numbers
(deffunction add-one-to-list-of-numbers (?lon)
(progn$ (?field ?lon)
(bind ?lon (replace$ ?lon ?field-index ?field-index (+ ?field 1)))
)
(return ?lon)
)
Функция 2:
;?lon = list of numbers
;?cnt = counter
(deffunction add-one-to-list-of-numbers-alt (?lon)
(loop-for-count (?cnt (length ?lon))
(bind ?lon (replace$ ?lon ?cnt ?cnt (+(nth$ ?cnt ?lon) 1)))
)
(return ?lon)
)