Clojure:
Interpolering av en streng
Hvordan gjøre det:
;; Bruke format for enkel strenginterpolering
(def navn "Ola")
(println (format "Hei, mitt navn er %s!" navn))
;; Output: Hei, mitt navn er Ola!
;; Bruke str for å sammenslå strenger og variabler
(defn hilsen [navn]
(str "Hei " navn ", hvordan har du det?"))
(println (hilsen "Kari"))
;; Output: Hei Kari, hvordan har du det?
Dypdykk
I tidligere programmeringsspråk som C, ble strenginterpolering ofte gjort med printf-familien av funksjoner. Clojure, skjønt, er et moderne Lisp og tilbyr ikke innebygd strenginterpolering på samme måte. Men det gir format
og str
for tilsvarende funksjonalitet. Mens format
bruker Java’s String.format()
og tar formateringsstrenger, kombinerer str
rett og slett verdier sammen til en enkelt streng.
Et alternativ er å bruke en template-bibliotek som Selmer for mer avansert formatering som kan inkludere logikk. For å implementere noe mer lik traditionell interpolering, kan makroer brukes til å utvide språkets syntaks.
Clojure har et sterk fokus på enkelhet og funksjonalitet. Strenginterpolering, slik noen andre språk tilbyr det, kan betraktes som unødvendig magi i denne sammenhengen.