metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-01-17 04:59 pm
Entry tags:

Немножко динамической типизации и кложури

Макрос 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? :)

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

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

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

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

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

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