Interpolación de cadenas de texto

Clojure:
Interpolación de cadenas de texto

Cómo Hacerlo:

En Clojure, no hay una función directa para la interpolación de cadenas como en otros lenguajes, pero se puede lograr con str y format. Aquí unos ejemplos:

;; Usando str para concatenar
(def nombre "Mundo")
(println (str "Hola, " nombre "!"))  ; Muestra "Hola, Mundo!"

;; Usando format para interpolación estilo printf
(def edad 30)
(println (format "Tengo %d años." edad))  ; Muestra "Tengo 30 años."

Con clojure.string también puedes hacer algo similar:

(require '[clojure.string :as s])

;; Concatenando con join
(println (s/join ["Hola, " nombre "!"]))  ; Muestra "Hola, Mundo!"

Profundizando

La interpolación de cadenas es un concepto antiguo, común en muchos lenguajes como Python y JavaScript. En Clojure, siendo un lenguaje funcional, prioriza la inmutabilidad y la simplicidad, por eso no tiene una sintaxis especial para interpolación.

Sin embargo, puedes implementar una función de interpolación o usar librerías como clojure.string. Otra opción es usar el paquete selmer, que ofrece una sintaxis similar a Django para la interpolación de cadenas.

Aquí un ejemplo con selmer:

(require '[selmer.parser :as parser])

(def template "Hola, {{ name }}!")
(println (parser/render template {:name "Mundo"}))  ; Muestra "Hola, Mundo!"

Además, es importante comprender que en Clojure, la concatenación de strings con str es bastante eficiente gracias a la forma en que la JVM maneja los strings.

Ver También