Size: a a a

2020 March 18

YK

Yaroslav Khnygin in Lisp Forever
даже в аппсторе есть местном
источник

SD

Sergey D in Lisp Forever
Yaroslav Khnygin
на маках вроде все пользуются Clozure
Слышал, он по скорости компиляции выигрывает у sbcl. Что-то ещё есть?
источник

YK

Yaroslav Khnygin in Lisp Forever
интеграция с макосью, своя IDE
источник

ХЛ

Хороший Лисичко in Lisp Forever
(define subst (lambda (x y l) (if l (cons (if (eq (car l) x) y (car l)) (subst x y (cdr l))))))
источник

l

lispbot in Lisp Forever
knet> ERROR:: invalid stack access asked for 0 Top was -1 :: 0
источник

ХЛ

Хороший Лисичко in Lisp Forever
(define sub (lambda (x y l) (if l (cons (if (eq (car l) x) y (car l) (sub (cdr l)))) '())))
источник

l

lispbot in Lisp Forever
knet> ERROR:: invalid stack access asked for 0 Top was -1 :: 0
источник

ХЛ

Хороший Лисичко in Lisp Forever
Кажется опять на стороне бота ошибка
источник

ХЛ

Хороший Лисичко in Lisp Forever
(define map (lambda (f l) (if l (cons (f l) (map f (cdr l))))))
источник

l

lispbot in Lisp Forever
knet> ERROR:: symbol {l 63} not found :: 0
источник

AP

Alex Peresmeshnik in Lisp Forever
пофиксил
источник

AP

Alex Peresmeshnik in Lisp Forever
(+ 8 6)
источник

l

lispbot in Lisp Forever
knet> 14
источник

AP

Alex Peresmeshnik in Lisp Forever
(define sub (lambda (x y l) (if l (cons (if (eq (car l) x) y (car l) (sub (cdr l)))) '())))
источник

l

lispbot in Lisp Forever
knet> ERROR:: symbol {sub 66} not found :: 0
источник
2020 March 19

a

akater in Lisp Forever
akater
Как бы назвать операцию добавления элемента к списку в конце если добавление к началу это push?
В r/lisp подсказали, что это называлось tconc в 1960-х, в BBN Lisp. Но я пришел к выводу, что то был неудачный интерфейс.
источник

AP

Alex Peresmeshnik in Lisp Forever
akater
В r/lisp подсказали, что это называлось tconc в 1960-х, в BBN Lisp. Но я пришел к выводу, что то был неудачный интерфейс.
Почему не удачный?
источник

a

akater in Lisp Forever
Третья попытка ускорить generic-функции, которую я вижу: https://github.com/marcoheisig/fast-generic-functions

Две другие это inlined-generic-functions и static-dispatch. Они работали неидеально, хотя первую писал определенно компетентный человек.
источник

a

akater in Lisp Forever
akater
Третья попытка ускорить generic-функции, которую я вижу: https://github.com/marcoheisig/fast-generic-functions

Две другие это inlined-generic-functions и static-dispatch. Они работали неидеально, хотя первую писал определенно компетентный человек.
У меня сработал один пример из README, который я попробовал, а больше я не смотрел ни на что пока.
источник

a

akater in Lisp Forever
Alex Peresmeshnik
Почему не удачный?
tconc действует на списке, отслеживающем свой хвост (последнюю ячейку), для эффективности. Такие списки можно имплементировать, например, с помощью cons-ячейки, один из элементов которой это последняя ячейка, а другой это собственно тот список, хвост которого отслеживается. Существует два способа реализовать такую структуру: поместить хвост в car либо в cdr. tconc действует именно на структуре, которая помещает хвост в cdr. Судя по тому, что я вижу, этот способ существенно хуже чем альтернативный. То, что я вижу, подробно описано тут: M-x magit-clone u git@gitlab.com:akater/cl-serere.git в файле cl-serere-helpers.org в разделе tail-tracing lists, в самом начале. Можно также попробовать почитать онлайн, но это будет очень неудобно: https://gitlab.com/akater/cl-serere/-/blob/master/cl-serere-helpers.org#L413
источник