← All posts tagged Lisp

anton0xf
quote cps c.j.r Lisp programming asvil> ок, я возле холодильника хочу бутер. я нажал кнопку. затем я достал ингридиенты, сделал бутер, опять нажал кнопку, и вот я вновь возле холодильника, хочу бутер, но он уже готов.
asvil> зачем я должен так жить с продолжениями.
asvil> ?
asvil> ага лексическое состояние "хочу бутер" сохраняется между нажатиями кнопки.
Okasu> asvil_: потому что ты индиана джонс и тебе надо вынести статуетку из пещеры, которая обрушится если статуетку взять
Okasu> созраняешься, берёшь, загружаешься
Okasu> пещера обрушена, а статуетка у тебя и ты живой и в шляпе
anton0xf
guile Scheme shit tutor Lisp *gnu
оффициальный тутор по guile:
только дошел до запускания хоть чего-то (2.2 Testing it out), сразу
нихрена не работает:
1. чтобы оно собралось, надо в Makefile надо в LIBS добавить -lm
2. gnuplot тихо и мгновенно завершается
2.1. нужно в start_gnuplot() заменить
-execlp ("gnuplot", NULL);
+execlp ("gnuplot", "gnuplot", "-p", NULL);
2.2. все равно не работает. нужно еще убрать нахрен
— fprintf (global_output, "clear\n");
из tortoise_reset().
видимо gnuplot после таких команд не только картинку чистит, но и настройки забывает.

что же будет когда таки до гайла дойдем?..
(наверное здесь отпишусь, если будет еще говн)
anton0xf
code cl shit iterate Lisp
обнаружил приличный недостаток в 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)
anton0xf
quote c.j.r Lisp jsv '()> лисп больше всего соответствует моим требованиям к языку
'()> правда полностью этим требованиям пока никто не соответствует
'()> мейнстримоговно — концептуально
'()> лиспы — отсутствием годнореализаций
jsv> бог хорош вот
jsv> но его нет
anton0xf
LOL Perl Lisp programming как оказалось, в Common Lisp'е есть два прикольных макро-символа (#n= и #n#, где n — натуральное число. #n=object вычислается в object и запоминается в метку n, а #n# вычисляется в запомненный под меткой n объект), которые позволяют в большинстве случаев обходиться без let'ов и делают из лиспокода перловку))

я их уже раньше видел в подобном контексте:
CL-USER> (setf print-circle t)
T
CL-USER> (defparameter l '(a b))
L
CL-USER> (setf (cddr l) l)
#1=(A B . #1#)

но как-то не думал, что это можно потом еще и прочитать ридером.
anton0xf
code на_память RESTAS Lisp programming
чтобы в RESTAS получать правильные строки из параметров маршрута,
нужно использовать парсер url-decode из hunchentoot'а.
например так:
(restas:define-route route ("route/:param"
							:parse-vars (list :param #'hunchentoot:url-decode))
  param)
зтот маршрут быдет отзываться на адреса вида "route/бла бла"
(их, ессно, тоже нужно кодировать, если браузер этого сам не делает)
текстом "бла бла" в кодировке по умолчанию (для меня - это utf-8)

при использовании GET-параметров все происходит автоматически,
что меня и запутало немного сначала.
anton0xf
code fuck cl Lisp ?
я не понимаю как работает backquote((
разбирал вот такой простой пример
(результат локализации непонимания из макры):

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

может я просто не понимаю чего-то?
anton0xf
c.j.r Lisp jsv Mageia> Кстати большинство den'ов, с которыми я имела дело, это сказочные идиоты. Предупреждаю на всякий пож.
Macro> я тебе даже больше скажу, большинство людей....
jsv> я даже больше скажу, все люди
jsv> ну, кроме меня
Macro> ну да, ты у мамы молодец
jsv — оазис адекватности в безбрежной пустыне неадеквата
anton0xf
quote c.j.r Lisp jsv Macro>
29~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~29;8~
Zøáááááááááááááááááááááááááááááááá29~
ForNeVeR> Что это за безумие?
ForNeVeR> Код на J?
Macro> #1;6S
ForNeVeR> Или у него jabber.el сломался?
lispnik> Видимо, уснул на клавиатуре.
jsv> и тяжело ворочался от восьмёрки к двойке и обратно к девятке? :)
lispnik> Я думаю, это просто Esc-последовательности.
lispnik> Правда, покорёженные.
jsv> укуренные какие-то
jsv> такие можно получить только после приёма тяжёлых модификаторов