一行野郎

Clojureawkのようなフィルタ処理をやろう・・・
といろいろ考えていたが、楽にできることがわかった。

準備

この辺りを使えば簡単。

(use '[clojure.contrib.duck-streams :only (reader read-lines)]
     '[clojure.contrib.str-utils :only (re-split)])

先頭の文字列だけ取得

namelist.txtは適当なテキストファイルとする。

(map #(let [fs (re-split #" " %)] (first fs)) (read-lines (reader "namelist.txt")))

合計値取得

score.txtは、こんな感じのファイルとする。

12
34
53
0
5

コードは以下の通り。

(reduce + 0 (map #(Integer/parseInt %) (read-lines (reader "score.txt"))))