Size: a a a

Emacs — русскоговорящее сообщество

2020 July 31

A

Aragaer in Emacs — русскоговорящее сообщество
не, там в основном расходы идут на gc, поэтому вопрос в том, как сделать так, чтобы промежуточные результаты были максимально пригодны к продолжению вычислений
источник

A

Aragaer in Emacs — русскоговорящее сообщество
кстати еще надо попробовать честный рекурсивный вариант
источник

A

Aragaer in Emacs — русскоговорящее сообщество
но без tco может стека не хватить
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
победил однозначно mapcan
источник

A

Aragaer in Emacs — русскоговорящее сообщество
еще может сработать вариант с деструктивным reverse
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Aragaer
попробуй вариант с collect
24, в два раза медленнее nconc
источник

A

Aragaer in Emacs — русскоговорящее сообщество
ох
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Aragaer
еще может сработать вариант с деструктивным reverse
у меня, кстати, plist в обратном порядке собирается, так что можно и без reverse
источник

A

Aragaer in Emacs — русскоговорящее сообщество
значит просто в cl-loop нет оптимизаций по сборке результата
источник

VL

Valeriy L in Emacs — русскоговорящее сообщество
а функции были скомпилированы?
источник

A

Aragaer in Emacs — русскоговорящее сообщество
в обратном порядке там совсем другой подход, надо аккумулятор
источник

VL

Valeriy L in Emacs — русскоговорящее сообщество
в любом случае причина проста
источник

VL

Valeriy L in Emacs — русскоговорящее сообщество
mapcan написан на C
источник

A

Aragaer in Emacs — русскоговорящее сообщество
ну mapcar тоже написан на си, но тут еще фишка в том, что мапкан наверняка по ходу выполнения держит указатель на хвост собранного списка
источник

VL

Valeriy L in Emacs — русскоговорящее сообщество
но было бы интересно перед бенчем запустить (compile 'alist->plist)
источник

S

Shizoid in Emacs — русскоговорящее сообщество
Интересно даже стало
источник

A

Aragaer in Emacs — русскоговорящее сообщество
если бы я писал, я бы так и сделал
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Aragaer
кстати еще надо попробовать честный рекурсивный вариант
не хватает max-lisp-eval-depth для auto-mode-alist
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Valeriy L
а функции были скомпилированы?
нет
источник

A

Aragaer in Emacs — русскоговорящее сообщество
если надо реверсить, то по-моему зарулит reduce
(reduce (lambda (x acc) (cons (car x) (cons (cdr x) acc))) alist)
источник