Clojure è più vicino allo Schema o al Lisp comune dal punto di vista di un principiante? [chiuso]

StackOverflow https://stackoverflow.com/questions/1412981

  •  06-07-2019
  •  | 
  •  

Domanda

Se voglio imparare Clojure, dovrei iniziare imparando Scheme o Common Lisp?

O Clojure è abbastanza diverso da entrambi, che dovrei iniziare a imparare Clojure da solo?

È stato utile?

Soluzione

Sarebbe a tuo vantaggio apprenderli tutti e tre, anche solo così potrai scegliere quale è il migliore per le tue esigenze. Tutti e tre hanno i loro punti di forza e di debolezza.

Clojure è vagamente come Scheme in quanto è un linguaggio prevalentemente funzionale ed è un Lisp1 . Clojure prende in prestito anche cose da Common Lisp, come multimetodi e macro, e le persone portano sempre a Clojure cose interessanti su Common Lisp come librerie. Il creatore di Clojure era lui stesso un hacker del Common Lisp prima di scrivere Clojure. Clojure prende in prestito molta terminologia e convenzioni da Scheme e CL (ma ha anche i suoi gusti in molte aree).

Non c'è molta letteratura per Clojure in questo momento, essendo una lingua così nuova (c'è solo un libro Clojure finora ). Ma ci sono molti buoni libri orientati allo Schema, come SICP e The Little Schemer / The Seasoned Schemer . Ci sono anche buoni libri CL, come PCL e molti altri.

Anche i Lisps hanno molta storia ed è a tuo vantaggio comprenderne la storia, vedere dove e perché Clojure si discosta da essa se non altro.

Consiglio di iniziare con Scheme perché è la lingua più semplice delle tre e quindi più facile da imparare. Quindi dilettarsi con CL e Clojure fino a quando non si ha una gestione delle cose, quindi andare a tutto vapore in qualunque delle due verso cui si gravita.

Altri suggerimenti

Per i tuoi scopi penso che tu sia sicuro di iniziare ad imparare Clojure. Le differenze tra Lisp e Scheme (e Clojure stesso per quella materia) non dovrebbero essere una preoccupazione soprattutto se stai appena iniziando a imparare.

La mia prima esperienza di apprendimento con Lisp è stata con Scheme, non ho mai toccato Common Lisp (mi è sembrato troppo complesso) e ora sto iniziando con Clojure.

Ho usato Dorai Sitaram " Teach Yourself Scheme in Fixnum Days " per imparare Scheme e sono andato abbastanza lontano, anche se non mi sono mai davvero trovato a voler usare Scheme in progetti reali.

Clojure, perché presumibilmente offre un accesso piacevole e pulito all'enorme universo delle librerie J2SE / J2EE, d'altra parte, mi incoraggia a riapprendere questo dialetto Lisp perché potrebbe finalmente essere di uso pratico.

Per quanto riguarda quello con cui iniziare, direi che Scheme è più semplice e quindi potrebbe essere più appropriato iniziare. D'altra parte, se hai una buona conoscenza di Java e Python, potresti non preoccuparti di immergerti direttamente in Clojure perché, a differenza di Scheme, contiene elementi di questi altri due linguaggi (ad esempio strutture di dati che ricordano tutorial centric di API Python e JVM / Java) e il terreno familiare potrebbe aiutare.

Da quando sono venuto da tutti e tre (Java, Python, Scheme), mi trovo in una buona posizione per apprezzare ciò che Clojure porta sul tavolo che è diverso da Scheme. Non sono uno Schemer esperto, ma direi che se inizi immediatamente con Clojure, otterrai comunque l'esperienza generale di Lisp, quindi sicuramente non ti mancherà rinunciando a Scheme.

Dipende se vuoi concentrarti sull'apprendimento o sul gioco. Se vuoi davvero studiare Lisp, Scheme è un buon punto di partenza. Se preferisci giocare mentre impari, Clojure è la soluzione migliore.

Alla fine penso che Clojure potrebbe essere una lingua di apprendimento migliore. Il supporto per la concorrenza è davvero sorprendente. Poche lingue rendono così semplice per un principiante la scrittura di programmi simultanei.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top