サーチ…


前書き

このドキュメントでは、clojureが提供するさまざまな基本機能について説明します。これに必要な明示的な依存関係はなく、org.clojureの一部として提供されます。

clojureでの関数の定義

(defn x [a b] 
        (* a b)) ;; public function

=> (x 3 2) ;; 6
=> (x 0 9) ;; 0

(defn- y [a b] 
        (+ a b)) ;; private function

=> (x (y 1 2) (y 2 3)) ;; 15

Assoc - 地図内の地図/ベクトル値を更新する

マップに適用すると、新規または更新されたキーvalペアを持つ新しいマップを返します。

既存のマップに新しい情報を追加するために使用できます。

(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27)            ;; { :name "Bob" :userID 2 :country "US" :age 27} 

既存のキーが提供されている場合は、古い情報の値を置き換えます。

(assoc userData :name "Fred")       ;; { :name "Fred" :userID 2 :country "US" } 
(assoc userData :userID 3 :age 27)  ;; {:name "Bob" :userID 3 :country "US" :age 27} 

また、指定されたインデックスの値を置換するためのベクトルで使用することもできます。

(assoc [3 5 6 7] 2 10)              ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6)               ;; java.lang.IndexOutOfBoundsException 

Clojureにおける比較演算子

比較はクロージャの関数です。それは、 (2>1)意味が、クロージャーで(> 2 1)であることを意味します。 clojureのすべての比較演算子があります。

  1. より大きい

(> 2 1) ;; true
(> 1 2) ;; false

  1. 未満

(< 2 1) ;; false

  1. 以上

(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false

  1. 以下またはそれ以下

(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true

  1. に等しい

(= 2 2) ;; true
(= 2 10) ;; false

  1. 等しくない

(not= 2 2) ;; false
(not= 2 10) ;; true

ディソック - クロージャーマップから鍵を分離する

これは、関数の引数に記述されているキーのキーと値のペアのないマップを返します。既存のマップから情報を削除するのに使用できます。

(dissoc {:a 1 :b 2} :a) ;; {:b 2}

また、以下のように複数のキーを解読するためにも使用できます。

(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow