Clojure: agregar una nueva clave a la estructura

Dado que las estructuras son inmutables, la única forma en que se puede agregar otra clave a la estructura es mediante la creación de una nueva estructura. En el siguiente programa se muestra un ejemplo de cómo se puede lograr esto.

Ejemplo

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (defstruct Employee :EmployeeName :Employeeid)
   (def emp (struct-map Employee :EmployeeName "John" :Employeeid 1))
   (def newemp (assoc emp :EmployeeRank "A"))
   (println newemp))
(Example)

En el ejemplo anterior, asociamos una nueva clave llamada EmployeeRank a la estructura, pero creando un nuevo objeto de estructura.

Salida

El programa anterior produce la siguiente salida.

{:EmployeeName John, :Employeeid 1, :EmployeeRank A}