Size: a a a

2019 March 12

a

akater in Lisp Forever
есть alexandria:if-let. У меня код в пэкедже, внутрь него if-let приходит из александрии
источник

a

akater in Lisp Forever
как можно без активации пэкеджа сказать, что if-let это alexandria:if-let?
источник

a

akater in Lisp Forever
Не знаю, что такое «активация пакета».

(cl:defpackage #:test (:use #:cl #:alexandria))
(cl:in-package #:test)

После этого IF-LET (и все прочие external символы) будут доступны в TEST без префикса.

Может, лучше в Lisp Forever это обсуждать?
источник

A

Aragaer in Lisp Forever
вот cl:in-package - я зачем-то пытался этого избежать 8)
источник

a

akater in Lisp Forever
Писать везде префикс cl и неинтернируемые символы (#:) необязательно, просто некоторые считают это предпочитаемым стилем когда речь о пакетах (я в т.ч.).
источник

a

akater in Lisp Forever
Если нужно импортировать только символ `IF-LET`, то можно написать

(defpackage #:test (:use #:cl) (:import-from #:alexandria #:if-let))
источник

a

akater in Lisp Forever
(если предварительно в TEST уже была использована вся ALEXANDRIA, то предварительно для чистоты эксперимента надо `(cl:unuse-package '(#:alexandria) '#:test)`)
источник

A

Aragaer in Lisp Forever
я еще не очень ориентируюсь в пакетах - в коде, который "запустил и все" - кое-как еще применяю, в тестах тоже, а вот в репле.. Впрочем я и в репл-то влез первый раз
источник

a

akater in Lisp Forever
@aragaer Прежде всего надо помнить, что пакеты действуют *только* с символами. Не с функциями, не с классами и т.д.

Есть короткий гайд про пакеты и символы:
http://www.flownet.com/ron/packages.pdf

Стиль письма нравится не всем. Еще есть первая глава в Common Lisp Recipes, она тоже про символы и пакеты.
источник

a

akater in Lisp Forever
Я довольно часто создаю throwaway пакеты с именами типа TEST чтоб не засорять пространство символов основных пакетов, с которыми сейчас орудую, или чтоб тестировать код прям в том виде как он написан в другом месте, но с патченными определениями.
источник

a

akater in Lisp Forever
Для `cl:in-package` у меня аж abbrev есть (а именно `ih`, на двораке, настолько часто надо)
источник
2019 March 13

OP

Oleg Ponomarev in Lisp Forever
Спасибо за добавление
источник
2019 March 16

a

akater in Lisp Forever
Наконец-то поставил Common Lisp на андроидофон в Termux

sources-list:

deb https://its-pointless.github.io/files/ termux extras


Потом apt-key, ключ есть по ссылке its-pointless.github.io

apt install ecl

Компилирует медленно, но все равно хорошо.
источник

ON

Oleksandr Nikitin in Lisp Forever
Добрый день, к кому можно обратиться по лиспу?(простите за не потеме)
источник

JV

Julia Valentinova in Lisp Forever
Так, я тут разобралась в своём вопросе, но если что, буду знать)
источник

OP

Oleg Ponomarev in Lisp Forever
akater
Наконец-то поставил Common Lisp на андроидофон в Termux

sources-list:

deb https://its-pointless.github.io/files/ termux extras


Потом apt-key, ключ есть по ссылке its-pointless.github.io

apt install ecl

Компилирует медленно, но все равно хорошо.
Супер
источник
2019 March 20

JV

Julia Valentinova in Lisp Forever
Добрый день, вопрос по Common Lisp, там есть функции типа floor, ceiling и тд, все они возвращают 2 значения, а есть ли какие-то функции, которые возвращают одно? Или это нужно доп. средствами делать?
источник

A

Aragaer in Lisp Forever
как я понимаю, если не использовать всякие let-values, то и будет взято одно первое
источник

A

Aragaer in Lisp Forever
* (format t "~a~%" (floor 2.3))
2
источник

MS

Mikola Summer Duck in Lisp Forever
Если ты не ловишь возвращаемые значения через multiple-value-bind или еще что-то, то берется только первое
источник