У меня есть простая проблема синтаксиса clojure (потому что я новичок в этом языке). для обоих примеров у меня есть список lst из (1 2 3 4):
в Лиспе я могу написать:
=> `(первый из списка, (первый lst))
(первый в списке 1)
в Clojure, если я напишу то же самое (с языковым переводом, к ~ как я ДУМАЛ, что где-то читал), я получу:
=> '(первый из списка ~ (первый lst))
(первый из списка (clojure.core / unquote (first lst)))
Я надеялся, что смогу делать то, что хочу, и в Clojure, и что у меня просто неверный синтаксис. хотя все примеры, которые я нахожу, сначала имеют функции и используют `(backtick). я не хочу вызывать такую функцию, как:
`(my-function ~ (first lst))
я просто хочу вернуть '(некоторый список, в котором (первый lst) заменен)
Могу ли я сделать такую вещь в Clojure?
РЕДАКТИРОВАТЬ: я дал плохой пример, видя, как моя фактическая проблема связана со строками. позвольте мне попробовать другой пример ...
=> (def color-lst '(красный, зеленый, синий))
что я хотел вернуть было:
=> `(цвет, который я хочу, ~ (первый цвет-lst))
это принесло мне все странные результаты, которые я видел. Другой способ сделать это -
=> (формат "цвет, который я хочу, это% s" (первый цвет-lst))
Вот так я решил свою проблему.