-1
Clojureに新しく追加されました。私はファイル内のアイテムを見つけ、値を変更して保存する必要がありますが、値を変更することはできません。私は配列の新しいコピーを作る必要がありますか?Clojure変更対象アイテム
ファイル:
{:name "John", :index 0}
{:name "Ivan", :index 1}
{:name "Niki", :index 2}
コード:
(ns test1.core
(:gen-class))
(use 'clojure.java.io)
(require '[clojure.string :as str])
(def file-data "names.txt")
(def findName "Ivan")
(defn write-data[xs, file]
(with-open [wrtr (writer file)]
(doall (map #(.write wrtr (str % "\n")) xs))))
(defn read-data[file]
(with-open [rdr (reader file)]
(doall (map #(load-string %) (line-seq rdr)))))
(defn -main []
(def data (read-data file-data))
(doseq [line data]
(if (= (line :name) findName)
(update-in line [:index] inc)
(println "No")))
(println data))