Clojureの学習を始めたばかりです。各URLの周りにいくつかの追加のメタデータを入れて、WebページからいくつかのURLをメモリに取り込もうとしています。Clojureの設定でネストされたHashMapを持つ空のベクトル
URLを取得できますが、問題が発生している場所に保存しています。私は、ネストされたマップを持つベクトルが必要であることを理解しました。新しいレコードをassoc-inに追加することはできますが、私はURLを知らないので、データ構造を最初に定義する方法がわかりません。例えばので
:
(def *comics*
[{:name "Penny-Arcade"
:url "http://www.penny-arcade.com/comic/"
:working 0
}
{:name "We The Robots"
:url "http://www.wetherobots.com/"
:working 0
}])
私は、私はそれでデータのない上記のデータ構造を起動する方法だけではわからない、それは、コマンドライン引数から最初から、その後残りを言う追加ウェブサイト
誰かが上記のデータを保存するより良い方法を提案できる場合は、お気軽にお問い合わせください。
また、RefのようなSTM抽象化を使用すると、さまざまな時点でアプリケーションフロー全体を通してこのデータを更新する必要がある場合があります。 – Ankur
最初にコマンドラインから最初のURLを入力してから、ストアするURL。同時実行性を使用するアプリケーションの別の部分は、それらのURLがまだ動作していることを検証します。私はそれがまだ可能かどうかはわかりませんでしたが、STMはそうすることができるように聞こえます。 – Dale
@Daleは、URLの突然変異ストアではなく、再帰的な関数呼び出しが必要なように聞こえると思います。あなたは間違いなく、ストレージの変更を構築するために参照数/原子などを使用することができますが、それはあなたが*必要ではないことが既に明らかであるときにあなたの問題を解決するための最善の方法であるという前提から始まらないでしょう。 –