Closed9
paizaでClojureの勉強 - 標準入力サンプル問題セット
(let [input (read-line)]
(println input))
(let [input (read-line)]
(println input))
(defn readlines [line-lenght]
(take line-lenght (repeatedly read-line)))
(doseq [line (readlines 3)]
(println line))
一度、リストにしたほうが他の問題でも使いやすいと思ったので関数化しています。
(defn readlines [line-lenght]
(take line-lenght (repeatedly read-line)))
(defn read-int-value-line []
(Integer/parseInt (read-line)))
(doseq [line (readlines (read-int-value-line))]
(println line))
Clojureは動的型付け言語ではあるが、JSとかPythonとは違ってintegerに変換してあげないとdoseqでエラーになる。
(defn split-line-by-space [line]
(clojure.string/split line #" "))
(doseq [line (split-line-by-space (read-line))]
(println line))
これも一度、リストにしたほうが他の問題でも使いやすいと思ったので関数化しています。
(defn read-int-value-line []
(Integer/parseInt (read-line)))
(defn split-line-by-space [line]
(clojure.string/split line #" "))
(let [n (read-int-value-line)]
(let [values (split-line-by-space (read-line))]
(cond
(= n (count values))
(doseq [value values]
(println value))
:else
(throw (Exception. "invalid input"))
)
)
)
一応、nとデータの件数が一致していることをチェックする処理を入れています。
(defn split-line-by-comma [line]
(clojure.string/split line #","))
(doseq [line (split-line-by-comma (read-line))]
(println line))
(defn read-int-value-line []
(Integer/parseInt (read-line)))
(defn split-line-by-comma [line]
(clojure.string/split line #","))
(let [n (read-int-value-line)]
(let [values (split-line-by-comma (read-line))]
(cond
(= n (count values))
(doseq [value values]
(println value))
:else
(throw (Exception. "invalid input"))
)
)
)
簡単なコードでもいつも使ったている言語とは書き方が全然違ってて、まだなかなか慣れない。
このスクラップは2023/06/24にクローズされました