Size: a a a

2021 June 26

Q

Qwerty in Lisp Forever
ок, генерализуем
источник

a

akater in Lisp Forever
properly generalized, это неплохая библиотека.  Так что надо приготовиться к длительному приключению.
источник

a

akater in Lisp Forever
(я, конечно, считаю, что обобщать не нужно)
источник

Q

Qwerty in Lisp Forever
lisp именно про такое - длительное приключение
источник

a

akater in Lisp Forever
Ну я кагбы сильно сомневаюсь, что надо куда-то обобщать когда непонятно, что за данные-то кроме plists.
источник

Q

Qwerty in Lisp Forever
structure like
источник

a

akater in Lisp Forever
Тогда функция должна называться не subplistp, а plist-specifies-subobject-p или что-то такое.
источник

Q

Qwerty in Lisp Forever
я вообще еще ни в структуры лиспа (в широком смысле), ни в типы данных значений не вникал, так что, могу нанести пурги
источник

Q

Qwerty in Lisp Forever
wherep, кроме нейминга, еще как то разгромить можно?
источник

a

akater in Lisp Forever
Я б написал как-то так: https://dpaste.org/EvFz (это Орг, но все должно быть понятно).
источник

n

nconc in Lisp Forever
sub-plist-p
источник

a

akater in Lisp Forever
Ну вот в стандарте есть subsetp.
источник

n

nconc in Lisp Forever
wordp
word-word-p
источник

a

akater in Lisp Forever
subplistp = «Is x a subplist of y?»
источник

n

nconc in Lisp Forever
Вы правы
источник

a

akater in Lisp Forever
Можно сделать так чтоб not-present не пересоздавался при каждом вызове, а был один на все вызовы subplistp, поменяв местами defun и let (поставить курсор на открывающую скобку (loop ..) и paredit-convolute-sexp или lispy-convolute), но я не в курсе всех тонкостей взаимоотношений компилятора и тех defun'ов, которые не toplevel.
источник

SA

Sokolov Andrew in Lisp Forever
(defun make-predicate (&rest args)
 (lambda (x)
   (loop :for ls := args :then (cddr args) :while ls
         :always (equal (getf x (first ls)) (second ls)))))
источник

SA

Sokolov Andrew in Lisp Forever
че скажешь про такую версию
источник

Q

Qwerty in Lisp Forever
я тут не все заклинания знаю )
источник

SA

Sokolov Andrew in Lisp Forever
ты попробуй примени чтобы
источник