Size: a a a

2020 September 07

a

akater in Lisp Forever
Valeriy L
проблема в том что там выходит 13 флагов
Я боюсь, это иногда неизбежно, особенно если это внешний интерфейс.

В Mathematica вот тоже у некоторых символов дофига опций (численных методов и Plot3D особенно, как помню).  Когда есть хорошая документация, в итоге это весьма приятно.

Но я не претендую на окончательность, просто изложил аргументы.
источник

VL

Valeriy L in Lisp Forever
да вот и я хз
источник

SD

Sergey D in Lisp Forever
Во втором нельзя обойтись только кейвордами без t? Есть ключ, значит включаем
источник

VL

Valeriy L in Lisp Forever
Sergey D
Во втором нельзя обойтись только кейвордами без t? Есть ключ, значит включаем
мм не знаю. там просто еще есть опции
источник

a

akater in Lisp Forever
Вообще я писал на эту тему DSL, где keyword'ам придается особый смысл.  Чтобы sexp

(emerge :with-bdeps y :ask :verbose : "app/wow")

превращался в

emerge --with-bdeps=y --ask --verbose app/wow

потому что не хотел (и не хочу) строки вручную соединять.  Но это для elisp, и адекватность абстракции проверялась на очень малом количестве команд.
источник

a

akater in Lisp Forever
Такое помогает записать покомпактнее в случае если не все опции это boolean опции.
источник

a

akater in Lisp Forever
М.б. должна быть функция с самыми обычными &key и должен быть отдельно макрос, чтоб попроще записывать к ней вызовы
источник

SD

Sergey D in Lisp Forever
Valeriy L
а какой лучше api сделать?
такой?
(make-posix-mqueue
"/blah"
:flags '(:read-write :close-on-exec :create :exclusive :non-block)
:mode '(:user-write :user-read))

или такой?
(make-posix-mqueue
"/blah"
:read-write t
:close-on-exec t
:create t
:exclusive t
:non-block t
:user-write t
:user-read t)
Кстати, почему make-? Раз уж у нас два неймспейса, может сокращать до posix-queue? (В самом cl тоже есть)
источник

VL

Valeriy L in Lisp Forever
Sergey D
Кстати, почему make-? Раз уж у нас два неймспейса, может сокращать до posix-queue? (В самом cl тоже есть)
нуу хз, в туториалах везде такой стиль видел make-<class name>
источник

VL

Valeriy L in Lisp Forever
да и в либах такое часто встречал
источник

a

akater in Lisp Forever
make-thing это везде.

Но можно и posix-queue:make, я спрашивал в irc, и по-моему edi weitz ответил, что это нормально.  Может, не он, но кто-то, кого я помнил.
источник

SD

Sergey D in Lisp Forever
Понимаю, что везде. Соглашение вот такое, make-instance и т.п. Непонятно зачем в новом коде так делать. Чтобы глагол был? Чем (instance 'queue), (hash-table) не ок?
источник

DE

Denis Ermolenko in Lisp Forever
Sergey D
Понимаю, что везде. Соглашение вот такое, make-instance и т.п. Непонятно зачем в новом коде так делать. Чтобы глагол был? Чем (instance 'queue), (hash-table) не ок?
мне кажется или будут свои проблемы
источник

VL

Valeriy L in Lisp Forever
хмм, тогда нужно соглашение что имя существительное это создание обджекта
источник

VL

Valeriy L in Lisp Forever
а пока соглашение make-something
источник

VL

Valeriy L in Lisp Forever
хмм
источник

VL

Valeriy L in Lisp Forever
а вот в елиспе новое соглашение something-create
источник

VL

Valeriy L in Lisp Forever
но там из-за отсутствия неймспейсов скорее
источник

VL

Valeriy L in Lisp Forever
create-something я в борщекоде не видел еще
источник

DE

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