Clojure容器一覧


Clojureでは、リスト(list)、ベクトル(vector)、マッピング(map)、セット(set)1のデータセットを整理する方法がいくつかあります.
まず、各フォーマット2を大まかに見てみましょう.
  • リスト'(a b c)
  • ベクトル[12 3]
  • マッピング{:a 1:b 2}
  • 集合#{:a:b:c}
  • -リストの対応するアクション3
    リストを作成するには
    (ns clojure.examples.example
       (:gen-class))
    (defn example []
       (println (list 1 2 3 4)))
    (example)
    

    listを使用してデータのセットをlistデータに変換し、(1 2 3 4)に出力し、listを書くときはその前に’を付けるべきです.カッコはClojureの言語単位であり、カッコの中の1つの文を表し、引用符を付けないとlistの最初の要素が関数であり、後続の要素がその操作データであると考えられます.引用文では、最初の要素を取り出すなど、リストの一般的な操作を示します.
    (first '(1 2 3 4 5 6))
    ;;-> 1
    

    -ベクトルの対応するアクション4
    ベクトルを作成するには
    (ns clojure.examples.example
       (:require [clojure.set :as set])
       (:gen-class))
    (defn example []
       (println (vector 1 2 3)))
    (example)
    

    vectorを使用してベクトルを作成し、[12 3]、リストのオペレータの一部を出力します.ベクトルでも使用できます.
    (first [1 2 3])
    ;;-> 1
    

    リストとは異なり、ベクトルではインデックスを使用して要素にすばやくアクセスできます.
    (nth [1 2 3] 0)
    ;;-> 1
    (nth [1 2 3] 2)
    ;;-> 3
    

    もう1つの関数はlastで、最後の要素を返します.
    (last [:a :b :c])
    ;;-> :c
    

    その他のオペレータは、引用文で4を表示できます.
    -対応するマッピング操作5
    (ns clojure.examples.example   
      (:gen-class))
    (defn example []   
      (def demokeys (hash-map "z" "1" "b" "2" "a" "3"))   
      (println demokeys))
    (example)
    

    マッピングはmapとも呼ばれ、hash-mapによってマッピングを構築した結果、{z 1 b 2 a 3}となり、私たちが接触している他の言語と同様に、マッピングはキー値対で格納され、{z 1,b 2,a 3}と書くこともでき、カンマはスペースと見なされ、マッピングは可読性のためにカンマを保持し、慣用に合っている.mapは、対応するオペレータで操作できます.例:
    (get {:a 1 :b 2 :c 3} :b "not found")
    ;;-> 2
    

    キーで値を取得し、デフォルト値を与えます.デフォルト値は必須ではありません.省略できます.
    -セットの対応するアクション6
    コレクションの作成:
    (ns clojure.examples.example
       (:gen-class))
    (defn example []
       (println (set '(1 1 2 2))))
    (example)
    

    setを使用してリストを集合に変換する操作で、出力結果は#{1,2}であり、集合は要素を繰り返さず、具体的な集合の関数操作であり、引用文では6を詳細に示す.
    Living Clojure(中国語版):中国電力出版社↩︎
    Clojure言語3:コンテナ:https://blog.csdn.net/csfreebird/article/details/8444070 ↩︎
    リストのアクション:https://www.w3cschool.cn/clojure/clojure_lists.html ↩︎ ↩︎
    ベクトルの対応するアクション:https://www.w3cschool.cn/clojure/clojure_vectors.html ↩︎ ↩︎
    マッピングに対応するアクション:https://www.w3cschool.cn/clojure/clojure_maps.html ↩︎
    セットの対応するアクション:https://www.w3cschool.cn/clojure/clojure_sets.html ↩︎ ↩︎