Size: a a a

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

2020 July 31

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
даже так
(cl-defun wtf (((k . v) . kvs) &optional acc &aux (d (append acc (list k v))))
 (if kvs
     (wtf kvs d)
   d))
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
даже так
(cl-defun wtf (((k . v) . kvs) &optional acc &aux (d (append acc (list k v))))
 (if kvs
     (wtf kvs d)
   d))
Eww
источник

DL

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

VL

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

VL

Valeriy L in Emacs — русскоговорящее сообщество
как развидеть
источник

VL

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

DL

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

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
не, ну можно &aux в let перетащить, конечно
источник

VL

Valeriy L in Emacs — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
не, ну можно &aux в let перетащить, конечно
я забыл совсем про него
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
(cl-defun wtf (((k . v) . kvs)
              &optional acc)
 (let ((res (append acc (list k v))))
   (if kvs
       (wtf kvs res)
     res)))
источник

A

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

A

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

A

Aragaer in Emacs — русскоговорящее сообщество
(cons k (cons v (if kvs (wtf kvs) nil)))
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
тогда уж так
(defun alist->plist (alist &optional acc)
 (pcase alist
   ('() acc)
   (`((,prop . ,val) . ,tl)
    (alist->plist tl (cl-list* prop val acc)))))
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
но все это сразу в топку, потому что нету TCO
источник

A

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

PG

Pig Greenest in Emacs — русскоговорящее сообщество
так что либо dolist, либо loop
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Pig Greenest
тогда уж так
(defun alist->plist (alist &optional acc)
 (pcase alist
   ('() acc)
   (`((,prop . ,val) . ,tl)
    (alist->plist tl (cl-list* prop val acc)))))
тогда редусе
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
(defun alist-to-plist (alist)
 (reduce (cl-defun _ (acc (k . v))
             (append acc (list k v)))
         alist
         :initial-value nil))
источник

A

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