Size: a a a

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

2021 November 14

a

akater in Emacs — русскоговорящее сообщество
К do можно лишь привыкнуть, и я так не привык.  (И не очень хочется.)
источник

VV

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

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
я даже не знал, что такая версия есть
источник

MK

Mikhail Kirillov in Emacs — русскоговорящее сообщество
>GNU Emacs. Development native-comp branch and pgtk branch combined, served as a binary.
источник

MK

Mikhail Kirillov in Emacs — русскоговорящее сообщество
В guix кстати тоже упаковано
источник

MK

Mikhail Kirillov in Emacs — русскоговорящее сообщество
>emacs-next-pgtk
>description: This is an unofficial Emacs fork build with a pure-GTK graphical toolkit to work natively on Wayland.  In addition to that, xwidgets also
+ enabled and works without glitches even on X server.
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
про native comp я знал, а про pgtk нет
источник

VV

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

MK

Mikhail Kirillov in Emacs — русскоговорящее сообщество
Чё там тезисно?
источник

y

yosk in Emacs — русскоговорящее сообщество
Что-то я попробовал запустить эти две штуки и seq-reduce оказался немного быстрее :)
Но претензия насчет append справедливая, просто вариант с dolist скорее всего тормозит на reverse исходного списка.

(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)))))

(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
  '()))
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
что только 2% ошибок связано с типами, и ради этого жертвовать преимуществами динамического типизирования - не очень
источник

MK

Mikhail Kirillov in Emacs — русскоговорящее сообщество
Имо динамическая типизация стала популярной из-за того, что почему-то никто особо не пытался делать скриптовые языки с автовыводом типов как в SML/Ocaml, а типы вводить всегда это действительно геморно
источник

VV

Vitaly Vasiliev in Emacs — русскоговорящее сообщество
ну в смл нельзя написать например if 5=5 then 5 else "wrong"
источник

a

akater in Emacs — русскоговорящее сообщество
А точно скомпилированный код сравнивается?

nreverse еще быстрее должен быть, тут легко написать деструктивную вариацию.

Можно еще переиспользовать консы:

(let ((list (reverse '(:a b c :d e f :g))) alist values)
 (while list
   (cl-rotatef list (cdr list) values)
   (when (keywordp (car values))
     (push values alist)
     (setf values nil)))
 alist)
источник

MK

Mikhail Kirillov in Emacs — русскоговорящее сообщество
Где нельзя
источник

VV

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

y

yosk in Emacs — русскоговорящее сообщество
Ну, по идее benchmark-run-compiled должен компилировать. Попробовал намеренно сделать ошибку в количестве аргументов, сообщение об ошибке появилось в буфере *Compile-Log*.
источник

MK

Mikhail Kirillov in Emacs — русскоговорящее сообщество
Действительно похоже нельзя
источник

y

yosk in Emacs — русскоговорящее сообщество
Да, вариант с с cl-rotatef действительно быстрее получается.
источник

a

akater in Emacs — русскоговорящее сообщество
С nreverse еще лучше будет если можно разрушить исходный список (note: разрушать процитрованные объекты это UB).
источник