La sorgente per lazy-xml ha il seguente:In Clojure perché usare: solo []
(:use [clojure.xml :as xml :only []]
[clojure.contrib.seq :only [fill-queue]])
Qual è lo scopo di utilizzare clojure.xml
ma elenca nulla per i :only
argomenti?
La sorgente per lazy-xml ha il seguente:In Clojure perché usare: solo []
(:use [clojure.xml :as xml :only []]
[clojure.contrib.seq :only [fill-queue]])
Qual è lo scopo di utilizzare clojure.xml
ma elenca nulla per i :only
argomenti?
Notare :as xml
che combinato con :only []
sembra rendere quella riga equivalente a (:require [clojure.xml :as xml])
. Questo stile potrebbe essere utile se si desidera copiare alcuni oggetti nello spazio dei nomi locale (ad esempio, un numero non vuoto :only
), ma consentire al resto di tale spazio dei nomi di essere alias esplicitamente tramite :as
. Dal momento che non è quello che sta facendo, dovrebbe essere solo un :require
.
Probabilmente la persona che scrive questo codice ha già una serie di dichiarazioni ': use' e non ha voluto scrivere una clausola': require' separata. Non una decisione raccomandata IMO, ma se ha solo uno spazio dei nomi che sta usando in questo modo gli farebbe risparmiare un paio di caratteri. – amalloy
Codice odore? Mi chiedo perché i progettisti linguistici non abbiano optato per un modulo * single * (combinato) di uso/richiesta. –
@SridharRatnakumar Cosa. Quella domanda "mi chiedo" non ha senso. La macro 'ns' è un modulo uso/richiesta combinato, e devi specificare in qualche modo quale parte vuoi interpretare come un' uso', e quale come 'richiede'. Non poteva solo intuire magicamente. – amalloy