<jsv> гентушники — нет
<jsv> но гентушные майнтейнеры уверены, что пользователи это обожают
обнаружил приличный недостаток в 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)
чтобы в RESTAS получать правильные строки из параметров маршрута, нужно использовать парсер url-decode из hunchentoot'а. например так: (restas:define-route route ("route/:param" :parse-vars (list :param #'hunchentoot:url-decode)) param) зтот маршрут быдет отзываться на адреса вида "route/бла бла" (их, ессно, тоже нужно кодировать, если браузер этого сам не делает) текстом "бла бла" в кодировке по умолчанию (для меня - это utf-8) при использовании GET-параметров все происходит автоматически, что меня и запутало немного сначала.
я не понимаю как работает backquote(( разбирал вот такой простой пример (результат локализации непонимания из макры): (let ((p 'q)) `(let ((r 's)) `(eq ',r ',',p))) следуя опрделению в стандарте, путем эквивалентных преобразований, привел его к тому же виду, в который оно вычисляется. но в голове вся эта цепочка определенно не держится( и почему здесь нужно именно ',', я так и не понял может я просто не понимаю чего-то?
jsv — оазис адекватности в безбрежной пустыне неадеквата