Clojure - alter

Questa funzione viene utilizzata per modificare il valore di un tipo di riferimento ma in modo sicuro. Viene eseguito in un thread, a cui non è possibile accedere da un altro processo. Questo è il motivo per cui il comando deve essere associato a un file‘dosync’metodo sempre. In secondo luogo, per modificare il valore di un tipo di riferimento, è necessario chiamare una funzione per apportare la modifica necessaria al valore.

Sintassi

Di seguito è riportata la sintassi.

(alter refname fun)

Parameters- "refname" è il nome della variabile che contiene il valore di riferimento. 'fun' è la funzione che viene utilizzata per modificare il valore del tipo di riferimento.

Return Value - Il riferimento e il suo nuovo valore corrispondente.

Esempio

Un esempio di come viene utilizzato è mostrato nel seguente programma.

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def names (ref []))
   
   (defn change [newname]
      (dosync
         (alter names conj newname)))
   (change "John")
   (change "Mark")
   (println @names))
(Example)

Produzione

Il programma precedente produce il seguente output.

[John Mark]