Size: a a a

2020 September 07

VL

Valeriy L in Lisp Forever
мне очень понравилась идея с просто make
получается cl-posix-mqueue:make и cl-posix-mqueue.attributes:make
источник

VL

Valeriy L in Lisp Forever
а с никнеймами будет ахуенно
mq:make и mq.attr:make
источник

VL

Valeriy L in Lisp Forever
а как лисп воспринимаем подпакеты? он понимает что между ними есть relation или для него это просто символы?
источник

VL

Valeriy L in Lisp Forever
Denis Ermolenko
через (instance `queue)   по-идее можно брать слот instance или еще чего-то . А вот глагол четко говорит что к чему и нету двусмысленности
+
источник

VL

Valeriy L in Lisp Forever
Хмм а правильно ли я понимаю что систему типов можно (и нужно?) использовать для валидации аргументов функций в рантайме?
Ну т.е. ты не пишешь чек внутри функции, а просто создаешь отдельный тип, как это делается например в ML-like языках
источник

V(

Vλadimir (Hawthorne ... in Lisp Forever
в лиспе принадлежать типу = входить в список (множество, сет)
источник

V(

Vλadimir (Hawthorne ... in Lisp Forever
так что проверяй стандартные или объявляй свои и тоже проверяй
источник

V(

Vλadimir (Hawthorne ... in Lisp Forever
но во втором случае, как я понял в свое время @akater , выигрыш будет не всегда
источник

a

akater in Lisp Forever
Vλadimir (Hawthorne the Toolmaker)
но во втором случае, как я понял в свое время @akater , выигрыш будет не всегда
Ну, SBCL не сделает толковых выводов из satisfies (немудрено).
источник

VL

Valeriy L in Lisp Forever
akater
Ну, SBCL не сделает толковых выводов из satisfies (немудрено).
Так он хоть так, хоть так не сделает
источник

VL

Valeriy L in Lisp Forever
Мне же нужен просто чек который бы выбрасывал еррор если с переменной что-то не так
источник

VL

Valeriy L in Lisp Forever
Я полюбому для этого чека функцию бы отдельную делал
источник

VL

Valeriy L in Lisp Forever
Vλadimir (Hawthorne the Toolmaker)
в лиспе принадлежать типу = входить в список (множество, сет)
Да, меня именно это интересует
источник

a

akater in Lisp Forever
Valeriy L
Мне же нужен просто чек который бы выбрасывал еррор если с переменной что-то не так
assert
источник

a

akater in Lisp Forever
Valeriy L
Мне же нужен просто чек который бы выбрасывал еррор если с переменной что-то не так
В SBCL на высокой safety, declare это де факто assert, который во время компиляции работает.
источник

VL

Valeriy L in Lisp Forever
akater
В SBCL на высокой safety, declare это де факто assert, который во время компиляции работает.
А declaim
источник

VL

Valeriy L in Lisp Forever
Он же вроде проверяет в рантайме
источник

a

akater in Lisp Forever
Valeriy L
Он же вроде проверяет в рантайме
Судя по CLHS, разница между declaim и declare только в том, что declaim глобальный, а не в том, когда будет эффект.  Я с осторожностью пользуюсь declaim, так что не особо искушен.

Когда будет эффект, от имплементации зависит.  В некоторых имплементациях может не быть вообще никакого.
источник

a

akater in Lisp Forever
В общем, я люблю объявлять типы просто с помощью declare (в т.ч. свои), и во время разработки у меня в asdf:defsystem написано
:around-compile
(lambda (next)
 (proclaim '(optimize
             (compilation-speed 0)
             (debug 3)
             (safety 3)
             (space 0)
             (speed 0)))
 (funcall next))

и тогда SBCL очень рано указывает на ошибки типов.
источник

SA

Sokolov Andrew in Lisp Forever
declaim/declare
источник