Je souhaite créer une liste de chaînes dans le clojure équivalent au code Java suivant: : mais je ne suis pas sûr de la syntaxe exacte p> p>
5 Réponses :
Que diriez-vous:
(def cities ["Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm"])
(def cities ["Berlin" "Brussels" "Helsinki" "Madrid" "Oslo" "Paris" "Stockholm"]) http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips#Clojure_for_Java_Programmers
Strictement parlant, des exemples fournis ci-dessus produiront des vecteurs. La liste peut être produite de la manière suivante: ou plus court: p> Dans certains cas, cette différence pourrait être importante. P > p>
La tique à l'avant empêchera également tout ce que la liste est évaluée. Son bon d'être au courant de la différence entre (liste "Hello" (str "Hello" "World") "World") ==> "Bonjour Hello World World" Code> et '("Hello" ( str "Bonjour" "World") "World") produit sa SELD avec le (str "Hello" "World") intact
En général, vous pouvez utiliser le nom d'une collection que vous souhaitez créer en tant que fonction pour la créer (facile à mémoriser EH?):
(defn make-trip [trip cities]
(into trip cities))
Rien d'entre eux ne sont réellement équivalents à:
user=> (java.util.ArrayList. [1 2 3]) #<ArrayList [1, 2, 3]> user=> (.get (java.util.ArrayList. [1 2 3]) 0) 1
En tant que note latérale au moins dans les versions Java plus récentes, vous ne pouvez qu'utiliser
Arrays.Aslist ("Berlin", "Helsinki", "Helsinki", "Madrid", "Oslo", "Paris", "Parisholm") < / code>.Dupliqué possible de Conversion des structures de données de clojure aux collections Java
Pour tous ceux qui sont intéressés par le clojure. Dans Clojure, la liste ne fournit pas d'accès direct, pour un accès direct que vous avez besoin de vecteur (à Clojure).