Clojure-agent

提供:Dev Guides
2020年6月22日 (月) 22:42時点におけるMaintenance script (トーク | 投稿記録)による版 (Imported from text file)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

Clojure-エージェント

エージェントは、agentコマンドを使用して作成されます。

構文

構文は次のとおりです。

(agent state)

パラメータ-「状態」は、エージェントに割り当てられるべき初期状態です。

戻り値-現在の状態と値を持つエージェントオブジェクトを返します。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println counter))
(Example)

出力

上記のプログラムは、次の出力を生成します。

#object[clojure.lang.Agent 0x371c02e5 {:status :ready, :val 0}]

アトムデータタイプと同様に、エージェントにもステータスと値が関連付けられていることがわかります。 エージェントの値に直接アクセスするには、変数名とともに@symbolを使用する必要があります。

これがどのように使用されるかの例は、次のプログラムに示されています。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def counter (agent 0))
   (println @counter))
(Example)

出力

上記のプログラムは、次の出力を生成します。

0

上記のプログラムから、@ counterのような@記号を追加すると、エージェント変数の値にアクセスできることが明確にわかります。