Чтобы добавлять сообщения и комментарии, .

@al1k:
al1k

шли вторые сутки пересборки мира на атоме. Нетбук стал переносным обогревателем

@al1k:
al1k

После перезагрузки пропали все графические утилиты для настройки wifi. Домашнюю сеть видит и помнит.
Кхм.

@Sectoid:
Sectoid

лисперы, а если ли способ получить бэктрейс прилетевшего condition'а? Например в виде строки (лучше, конечно, списка). Лучше переносимо, но сгодится и sbcl-way. Чтот пока не нахожу. trivial-backtrace дает бэктрейсы точки вызова (print-backtrace err), а не точки выброса этого самого err.

@Sectoid:
Sectoid

привет, ночной! скажи, а есть ли какие-то аналоги .NET'овским аттрибутам для CL? Ссылки приветствуются.

@anton0xf:
anton0xf

обнаружил приличный недостаток в iterate, по сравнению с loop или почти любым другим способом итерации.
в лиспах, благодаря "привязкам", если это вам нужно, можно сколько угодно юзать одно и то же имя в разных контекстах.
например так:
ANTON0XF> (defun test (p)
			(loop for p in p
			   collect p))
TEST
ANTON0XF> (test '(1 2 3))
(1 2 3)
удобно. но теперь давайте попробуем дословный аналог в iterate:
ANTON0XF> (defun test (p)
			(iter (for p in p)
				  (collect p)))
; ...
; caught STYLE-WARNING:
;   The variable P is defined but never used.
; ...
TEST
ANTON0XF> (test '(1 2 3))
NIL
жепа( оно может только так:
ANTON0XF> (defun test (p)
			(iter (for q in p)
				  (collect q)))
TEST
ANTON0XF> (test '(1 2 3))
(1 2 3)

@Sectoid:
Sectoid

Кто-нибудь сталкивался с cl-closure-template? Есть ли готовое средство чтобы он сам следил за шаблонами на FS и их перекомпилировал при изменении файла(ов) (при фейле компиляции например не переопределять функцию)? Задолбало перекомпиливать руками.

cast @archimag

@anton0xf:
anton0xf

я не понимаю как работает backquote((
разбирал вот такой простой пример
(результат локализации непонимания из макры):

(let ((p 'q))
  `(let ((r 's))
	 `(eq ',r ',',p)))
следуя опрделению в стандарте, путем эквивалентных преобразований,
привел его к тому же виду, в который оно вычисляется. но в голове вся
эта цепочка определенно не держится( и почему здесь нужно именно ',',
я так и не понял

может я просто не понимаю чего-то?

@bioh:
bioh

Вопрос может и дурацкий, но все же: можно как-то получить список всех символов и их значения из текущего окружения? Скажем в repl было объявлено несколько функций/макросов, протестировал их, исправил какие-то ошибки, могу ли я теперь увидеть список введенных символов и их определения, чтобы отправить их в файл какой-нибудь?

@sai:
sai

Чото мне CL-евский синтаксис не нравится >_>

@vladimir-vg:
vladimir-vg

Я вот немного не вкуриваю. Есть handlers — они обрабатывают ситуацию в том контексте в котором был брошен condition. А restarts что такое? Не, понятно, что круто в дебаггере выбрать что сделать конкретной проблемой. Или я вообще не понимаю сути condition system? Где есть более-менее ясное объяснение на пальцах? PCL курил.

@sai:
sai

Ну и как этим можно пользоваться? (defpackage :hello-world
(:use :cl :gobject :gtk)
(:export :main :run))

(in-package :hello-world)

(defun main ()
(within-main-loop
(let ((w (make-instance 'gtk-window :title "Hello, world"))
(l (make-instance 'label :label "Hello, world!")))
(container-add w l)
(connect-signal w "destroy" (lambda (w)
(declare (ignore w))
(gtk-main-quit)))
(widget-show w))))

(defun run ()
(main)
(join-main-thread))

@grouzen:
grouzen

Охрененская статья от комрада lova5an про типы в CL -> love5an.livejournal.com

@nobodyzzz:
nobodyzzz

BATTLE OF THE LISPS: Common Lisp vs. Scheme symbo1ics.com

@lexszero:
lexszero

Чят, я читнул PCLца и заблевал. (defun apply-to-1 (f) (f 1)) НЕ РОБОТАЕТ, и вынуждает меня юзать невнятный костыль apply. Подумал написать макру, но вспомнил о куче CL-способов передачи аргументов в функцию и решил, что лень. Запустил схеморепл и отхожу.

@mikeb:
mikeb

Вот и мне пришла сегодня моя копия 'LAND-OF-LISP (:

@Thriller:
Thriller

asdf — это, конечно, круто, но сделано везде всё на редкость криво и запутанно. Чтобы собрать cl-ppcre с sbcl (!), мне пришлось поставить cl-asdf, хотя, казалось бы, уже всё есть. Нет, может, что и в cl-ppcre.install было криво прописано, но лично мне неочевидно, с чего бы при компиляции потребовался именно /usr/share/common-lisp/source/asdf/asdf.lisp, а не то, что идёт с sbcl. В общем, нахер такие вещи надо закапывать и переделывать.
Алсо, прозреваю, если бы существовал какой-нибудь канонический компилятор CL (ну, как с интерпретаторами обычно бывает: Python, Perl, Ruby…), всё было бы гораздо проще.

@Thriller:
Thriller

CLOS какой-то кривой и вообще мне не нравится.

@Thriller:
Thriller

Посидел я тут, посидел да и подумал: а на что нам макросы? Вот вам и няшный карринг: (defmacro defcurried (new-f f &rest built-in) `(defun ,new-f (&rest rest) (apply #',f (append ',built-in rest))))

@Thriller:
Thriller

[2]> (let ((+ 3)) (+ + +))
6

@Thriller:
Thriller

clisp и ecl мало того, что требуют стопицот обратных кавычек для квазицитирования (одна их ну никак не устраивает), так ещё и разворачивают вызов макроса в какую-то дебильную чушь. Может, я что-то упустил?

@Thriller:
Thriller

clisp писали укурки? «READ: большее количество запятых, чем количество обратных кавычек недопустимо» O_o

@Thriller:
Thriller

clisp тоже плюётся nil-ами. Значит, дело не в бобин^Wsbcl. Алсо, интерактивный clisp няшнее интерактивного sbcl.

@Thriller:
Thriller

Ввиду того, что я так и не понял, в чём же дело (может, в sbcl?) и как же быть, объявляю предыдущий макрос недействительным.

@Thriller:
Thriller

А какого такого уя gethash возвращает nil, когда я в качестве ключей использую списки?

@Thriller:
Thriller

Ругайте мой первый макрос: dumpz.org %)

@Thriller:
Thriller

gensym в макросах — костылизм.

@Thriller:
Thriller

“Memory fault at 2cc”. А и хер с ним, возвращаюсь на Python тогда.

@Thriller:
Thriller

Да что за нафиг, по cl-ncurses вообще никакой документации нет. Пойду поковыряю доки по сишному ncurses, может, тогда настанет просветление

@Thriller:
Thriller

Что за нахрен? Не могу собрать cl-ncurses, ибо “/usr/lib/libncurses.so: файл слишком мал” O_o. В то же время питоновские биндинги отлично воркают.

@Thriller:
Thriller

Биндингов в GTK для CL хоть жопой ешь

@Thriller:
Thriller

Сделал код чуть более няшным %). Основное отличие — в apply. dumpz.org

@Thriller:
Thriller

Опа, а тут есть /=, прям как в хацкеле.

@Thriller:
Thriller

Ругайте мой первый experience в Common Lisp. Эта штука использует FIFO mcabber, чтобы отправлять координаты на жуйку. И, да, что-то мне говорит, что на sh было бы короче. Anyway, dumpz.org