Skip to content

Instantly share code, notes, and snippets.

@kawasima
Last active August 29, 2015 13:56
Show Gist options
  • Save kawasima/9182792 to your computer and use it in GitHub Desktop.
Save kawasima/9182792 to your computer and use it in GitHub Desktop.
適当な氏名を自動生成する。
(require '[clojure.string :as string]
'[clojure.java.io :as io])
(defn extract-name [name-seq]
(let [sei (atom [])
mei (atom [])]
(doseq [x name-seq]
(let [kana (first x)]
(doseq [p (rest x)]
(let [[n t] (string/split p #";")]
(case t
"姓" (swap! sei conj [n kana])
"名" (swap! mei conj [n kana])
nil)))))
(repeatedly (fn [] [(rand-nth @sei) (rand-nth @mei)]))))
(defn generate-random-name [n]
(with-open [rdr (io/reader "http://openlab.jp/skk/skk/dic/SKK-JISYO.jinmei" :encoding "euc-jp")]
(->> (line-seq rdr)
(remove #(.startsWith % ";"))
(map #(string/split % #"\s*/\s*"))
(extract-name)
(take n))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment