metaclass: (Default)
[personal profile] metaclass
Макрос with-db-comment выполняет указанную функцию с параметрами в контексте коннект+транзакция, с логом комментария к транзакции в БД.
dump-seq-debug скармливает последовательность в log4j для отладки.

вот такое падает с NPE:
(with-db-comment "(get-subaccounts 20)"
(dump-seq-debug (get-subaccounts "20")))

вот такое работает:
(with-db-comment "(get-subaccounts 20)"
dump-seq-debug (get-subaccounts "20"))

Можно ли увидеть разницу с первого раза и понять, откуда там NPE? :)

Вот эта содомия с лишними или пропущенными скобками, не обнаруживаемыми компилятором работу с кложурелиспами делает немного неудобной.
И практически не пригодной для осмысленного использования людьми без встроенной типовыводилки в голове.

Date: 2013-01-17 02:02 pm (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
драмматической типизации

Date: 2013-01-17 02:35 pm (UTC)
From: [identity profile] swizard.livejournal.com
Ну на самом деле, если использовать slime и нормально форматировать код, то таких проблем не возникает. А синтаксис малознакомых макросах лично я всё время макроэкспандом просматриваю перед отправкой на компиляцию.

Date: 2013-01-17 03:04 pm (UTC)
From: [identity profile] alexott.livejournal.com
можно еще и rainbow-delimiters поставить, тогда сразу видно матчинг скобок на разных уровнях...

Date: 2013-01-17 05:12 pm (UTC)
From: [identity profile] denis dmitriev (from livejournal.com)
Как это поможет в этом случае, когда все скобки парные и корректны сами по себе?

Date: 2013-01-17 03:05 pm (UTC)
From: [identity profile] jakobz.livejournal.com
А это там макросы, это не просто ФВП?

Date: 2013-01-17 03:19 pm (UTC)
From: [identity profile] artureg.livejournal.com
нет, макросы это макросы

Date: 2013-01-17 02:35 pm (UTC)
From: [identity profile] artureg.livejournal.com
всё очевидно же

Date: 2013-01-17 02:43 pm (UTC)
From: (Anonymous)
Так такой строки в лиспе:
[code]
dump-seq-debug (get-subaccounts "20"))
[/code]
при форматировании получиться никак не может.
то, что она некорректна, видно при первом же беглом взгляде на код.
в реальном коде может быть только такое:
[code]
(with-db-comment "(get-subaccounts 20)"
(dump-seq-debug (get-subaccounts "20")))

(with-db-comment "(get-subaccounts 20)"
dump-seq-debug
(get-subaccounts "20"))
[/code]
и тут разница сразу понятна.

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

Date: 2013-01-17 02:52 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
Вот поэтому мне и непонятно, как вообще люди в эту кложу ввязываются. Мало, что недотипизация, так и еще и недосинтаксис, порождающий такие вот ошибки.

Date: 2013-01-17 03:09 pm (UTC)
From: [identity profile] nivanych.livejournal.com
Она гибкая!
А статическая типизация не нужна!

Date: 2013-01-17 03:27 pm (UTC)
From: [identity profile] thedeemon.livejournal.com
О типизации вообще не надо думать, меня айсед учил.

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2013-01-17 03:30 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-01-17 03:57 pm (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2013-01-17 04:09 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-01-17 04:24 pm (UTC) - Expand

(no subject)

From: [identity profile] nivanych.livejournal.com - Date: 2013-01-17 04:41 pm (UTC) - Expand

(no subject)

From: [identity profile] levgem.livejournal.com - Date: 2013-01-17 06:11 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-01-18 04:20 am (UTC) - Expand

(no subject)

From: [identity profile] sum-erman.livejournal.com - Date: 2013-01-18 07:51 am (UTC) - Expand

Date: 2013-01-17 03:08 pm (UTC)
From: [identity profile] jakobz.livejournal.com
А вот нельзя в парсер этих ваших скобочек прикрутить хоть проверку на количество параметров? Можно же наверняка в 90% случаев выпалить сколько у тебя функция жрет, и сколько ей скармливают. Или это уже попахивает строгой типизацией и не богоугодно?
Edited Date: 2013-01-17 03:09 pm (UTC)

Date: 2013-01-17 03:09 pm (UTC)
From: [identity profile] artureg.livejournal.com
про функции высшего порядка слыхали?

Date: 2013-01-17 03:11 pm (UTC)
From: [identity profile] jakobz.livejournal.com
Какая связь между ФВП и количеством аргументов?

(no subject)

From: [identity profile] artureg.livejournal.com - Date: 2013-01-17 03:12 pm (UTC) - Expand

(no subject)

From: [identity profile] thedeemon.livejournal.com - Date: 2013-01-17 03:28 pm (UTC) - Expand

(no subject)

From: [identity profile] artureg.livejournal.com - Date: 2013-01-17 05:59 pm (UTC) - Expand

(no subject)

From: [identity profile] zamotivator.livejournal.com - Date: 2013-01-18 02:48 am (UTC) - Expand

(no subject)

From: [identity profile] artureg.livejournal.com - Date: 2013-01-18 07:52 am (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2013-01-18 12:27 pm (UTC) - Expand

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-01-17 03:31 pm (UTC) - Expand

Date: 2013-01-17 03:59 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Функции высшего порядка и их арность это вещи друг с другом никак не связанные )

(no subject)

From: [identity profile] artureg.livejournal.com - Date: 2013-01-17 05:47 pm (UTC) - Expand

Date: 2013-01-17 03:21 pm (UTC)
From: [identity profile] asvil (from livejournal.com)
в конкретном примере не ФВП, а макрос, который видимо принимает неопределённое кол-во параметров.
С другой стороны если это макрос, то сделан он как-то криво. with- макросы не принимают что-либо для дергания, а принимают "контекст" (назовем его так) и тело для выполнения, правда это не обязательство, а хороший тон.

Тут вообще наезд настолько специфический, что больше похоже на бред, а не на реальный наезд.

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-01-17 04:00 pm (UTC) - Expand

(no subject)

From: [identity profile] asvil - Date: 2013-01-17 04:07 pm (UTC) - Expand

Date: 2013-01-17 03:58 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Там у макросов и функций количество параметров может быть произвольным :)

(no subject)

From: [identity profile] jakobz.livejournal.com - Date: 2013-01-17 04:00 pm (UTC) - Expand

Date: 2013-01-17 03:15 pm (UTC)
From: [identity profile] andrew kondratovich (from livejournal.com)
потому что нужно или в стркоу все параметры писать или по однмоу переносить =)

Date: 2013-01-17 04:30 pm (UTC)
From: [identity profile] theiced.livejournal.com
видно с первого взгляда же

Date: 2013-01-17 06:17 pm (UTC)
From: [identity profile] blackyblack.livejournal.com
Да, я тоже понял, что в лиспах форматирование кода - неотъемлемая часть языка. Правда недокументированная.

Date: 2013-01-17 06:37 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Нужно всегда выносить непарную скобку на новую строчку.
(  abc
   (def)
   g
   )

всегда лучше "традиционного"
Правда, я за скобкой ещё и комментарий ставлю, к чему она относится, чтобы вверх-вниз не бегать

Date: 2013-01-17 08:21 pm (UTC)
From: [identity profile] theiced.livejournal.com
за такое вырывать яйца

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-01-17 09:09 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-01-17 09:22 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-01-17 09:23 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-01-17 09:26 pm (UTC) - Expand

(no subject)

From: [identity profile] metaclass.livejournal.com - Date: 2013-01-17 09:29 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-01-17 09:30 pm (UTC) - Expand

Date: 2013-01-17 09:31 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Я так выносил, пока редактор с более-менее адекватной подсветкой скобок не попался под руки.
Но вообще отдельная строка для закрывающей скобки часто удобнее (и комментарии ставить проще и копироваьт строки.

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-01-17 09:45 pm (UTC) - Expand

(no subject)

From: [identity profile] theiced.livejournal.com - Date: 2013-01-17 09:49 pm (UTC) - Expand

(no subject)

From: [identity profile] vit-r.livejournal.com - Date: 2013-01-17 09:59 pm (UTC) - Expand

(no subject)

From: [identity profile] blackyblack.livejournal.com - Date: 2013-01-18 05:05 am (UTC) - Expand

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 6th, 2025 06:49 pm
Powered by Dreamwidth Studios