7
votes

Comment créer une liste de chaînes dans le clojure?

Je souhaite créer une liste de chaînes dans le clojure équivalent au code Java suivant: xxx

: mais je ne suis pas sûr de la syntaxe exacte


3 commentaires

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).


5 Réponses :


2
votes

Que diriez-vous:

(def cities ["Berlin", "Brussels", "Helsinki", "Madrid", "Oslo", "Paris","Stockholm"])


0 commentaires

8
votes
(def cities ["Berlin" "Brussels" "Helsinki" "Madrid" "Oslo" "Paris" "Stockholm"])
http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips#Clojure_for_Java_Programmers

0 commentaires

16
votes

Strictement parlant, des exemples fournis ci-dessus produiront des vecteurs. La liste peut être produite de la manière suivante: xxx

ou plus court: xxx

Dans certains cas, cette différence pourrait être importante.


1 commentaires

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" et '("Hello" ( str "Bonjour" "World") "World") produit sa SELD avec le (str "Hello" "World") intact



6
votes

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))


0 commentaires

3
votes

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


0 commentaires