Size: a a a

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

2021 November 14

a

akater in Emacs — русскоговорящее сообщество
Этот конкретный rotatef настолько полезный, что у меня для него название есть

(defmacro npush-pop (source target)
 "Like (push (pop SOURCE) TARGET) but reuse the cons cell, and return nil."
 `(cl-rotatef ,source (cdr ,source) ,target))
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
PDS when
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
о, диды, а есть чо почитать, как capf делать?
источник

n

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

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
источник

ДБ

Даниил Берендеев... in Emacs — русскоговорящее сообщество
источник

A ß in Emacs — русскоговорящее сообщество
ping
источник

¥

¥αros!αν in Emacs — русскоговорящее сообщество
подкатила
источник

V(

Vλadimir (Hawthorne ... in Emacs — русскоговорящее сообщество
В метаверсе все рекрутеры будут кошкодевками
источник

A ß in Emacs — русскоговорящее сообщество
прекрасный алгоритм, я не додумался сделать reverse на оригинальном списке
источник

A ß in Emacs — русскоговорящее сообщество
попробуй мой вариант
(defun mlist->alist (keyp mlist)
 (cl-assert (funcall keyp (car mlist)) t)
 (let (alist)
   (while mlist
     (let ((value (list (pop mlist))))
       (while (and mlist (not (funcall keyp (car mlist))))
         (push (pop mlist) value))
       (push (nreverse value) alist)))
   (nreverse alist)))
источник

A

Aragaer in Emacs — русскоговорящее сообщество
по nanomsg где нормальная документация с примерами есть?
источник

A

Aragaer in Emacs — русскоговорящее сообщество
по zeromq я нашел, но у nanomsg есть отличия
источник

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

y

yosk in Emacs — русскоговорящее сообщество
А, я затестил и забыл написать. Как-то оно сильно медленно по сравнению с остальными способами.

(benchmark-run-compiled 500
 (seq-reduce
  (lambda (acc el)
    (if (< 5 (length (symbol-name (car el))))
        (cons (list el) acc)
      (cons (append (car acc) (list el))
            (cdr acc))))  
  package-archive-contents
  '()))
;; => (1.654912268 7 1.1712598689999822)


(benchmark-run-compiled 500
 (let (values alist)
   (dolist (x (reverse package-archive-contents) alist)
     (push x values)
     (when (< 5 (length (symbol-name (car x))))
       (push values alist)
       (setf values nil)))))
;; => (1.965602425 10 1.6359300010000197)


(benchmark-run-compiled 500
 (let ((list (reverse package-archive-contents)) alist values)
   (while list
     (cl-rotatef list (cdr list) values)
     (when (< 5 (length (symbol-name (car (car values)))))
       (push values alist)
       (setf values nil)))
   alist))
;; => (1.310875462 6 0.9877555929999744)

(defun mlist->alist (keyp mlist)
 (cl-assert (funcall keyp (car mlist)) t)
 (let (alist)
   (while mlist
     (let ((value (list (pop mlist))))
       (while (and mlist (not (funcall keyp (car mlist))))
         (push (pop mlist) value))
       (push (nreverse value) alist)))
   (cl-assert (null mlist) t)
   (nreverse alist)))

(benchmark-run-compiled 500
 (mlist->alist (lambda (el) (< 5 (length (symbol-name (car el)))))
               package-archive-contents))
;; => (12.662998667 65 9.843178946000023)
источник

A ß in Emacs — русскоговорящее сообщество
надо посмотреть что там
источник

A ß in Emacs — русскоговорящее сообщество
потому что это может быть очень полезно
источник

A ß in Emacs — русскоговорящее сообщество
а, ну тут написано почему, 65 сборок мусора
источник

y

yosk in Emacs — русскоговорящее сообщество
Если я правильно понял, то даже без них все равно будет много. 12.6 - 9.8 = 2.8, остальные даже с gc меньше двух секунд.
источник

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