Если вы хотите устроиться на работу колдуном-программистом, вам придется пройти собеседование с написанием кода на бумажке. Все инженеры периодически их проходят - иногда в качестве утреннего ритуала, вместе с аккуратным расставлением окошек терминала по астральному плану, компульсивным выполнением команды ls
во всех папках (на всякий случай, если за ночь что-либо поменялось). С теми же чувствами другие копаются в дальнем ящике на кухне, где лежат всякие отвертки, бесхозные патрубки, и прочие пластмассовые изделия - белые вороны среди бытовых принадлежностей, чье первоначальное предназначение давно забыто (а может и никогда не было известно), но о которых мы все равно вынуждены заботиться.
Сегодня мы обсудим один из типичных вопросов на таком интервью - развернуть связанный список.
Первым делом вам нужен список. Вы очищаете рабочее пространство от ненужных окон терминала, насыпаете соль в виде двух защитных скобочек и уходите в рекурсию, призывая список из бездны:
(defn cons [h t] #(if % h t))