Clojure
今回はTODOリストを溜め込む処理と溜め込んだリストを表示する処理を作成しました。(絶対もっとスマートな書き方あるだろ・・・とか思いながら)うーん (defn display-todolist [] (map #(str "No: " (:no %) " " "Item: " (:todo %) "</br>")(deref todolist)))…
なんか他のフレームワークでもよくあげられるサンプルとしてTODOアプリケーションがあるのでそれを試してみます。 lein new compojure hello-todoまずは project.clj を弄って hiccup を使えるようにします。 (defproject hello-todo "0.1.0-SNAPSHOT" :desc…
・・・CSVとかもういいわ(諦めClojureでWebアプリケーションつくるにはhttp://qiita.com/snufkon/items/5224ecc090a8fddd45cdを見ると、CompojureとHiccup使えばなんとかなりそうなので手を出してみるプロジェクトの作成は lein new compojure [プロジェク…
一般的にどちらが良いかを論じるつもりはないのでそういった話を見たい人はもっと別の技術力のある方たちの議論を見たほうがよいでしょう。あくまで、自分の感じたところをつらつらと書きます。
全然うまく行かないのでrepl でちょっとみてみるふむじゃpart1のやつをちょっと弄ってみて (defn -main [] (def uploadData (parse-csv (slurp "test.csv"))) (def defaultData (parse-csv (slurp "default.csv"))) (println (class uploadData)) (println (…
default.csv, test.csvという2つのCSVファイルがあったとして・・・■ default.csv aaa,bbb■ test.csv 000,111という中身だったとする。んで 000 : aaa 111 : bbbと出力したいと考えたCSVファイルの読み込みにはhttps://github.com/davidsantiago/clojure-cs…
行くよっって自分がつぶやいたらyoutube で Q&Aリサイタル を再生するという意味の分からないやーつ (ns hello.core (:import [twitter4j TwitterFactory Query TwitterException]) (:use [clojure.java.browse]) ) ;; Twitter からつぶやきを取得 ;; -> laz…
正月2日めからなんでClojureの勉強してるんだろう・・・ 今回はたびたび出てくる#について#は無名関数のリーダーマクロだ(※マクロとリーダーマクロは全く違うらしい。まだそこまで読み込めていない。。。)Clojureにおける無名関数は fn で作れるが# を使…
Clojure その19 twitter4j を使ってみる3 - Sphereとともににコメント頂きましたので、早速動きを見てみましょうOh...エラー出てる・・・こいつは困った・・・ちょろっと書き加えてみる (ns hello.core (:import [twitter4j TwitterFactory Query Twitter…
むむむ・・・ (ns hello.core (:import [twitter4j TwitterFactory Query TwitterException])) (defn -main [] (try (let [twitter (.getInstance (TwitterFactory.))] (let [userTimeline (.getUserTimeline twitter)] (println (map #(.getText %) userTim…
とりあえず1件表示することはできたので、 (ns hello.core (:import [twitter4j TwitterFactory Query TwitterException])) (defn -main [] (try (let [twitter (.getInstance (TwitterFactory.))] (let [userTimeline (.getUserTimeline twitter)] (printl…
(※Clojureの理解が不十分なまま書いています)準備として■ project.cljtwitter4j の依存関係を記述 (defproject hello "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :license {:name "Eclipse Public Licens…
ちょっと気になったので (ns hello.core) (defn -main [x y] (let [z (try (/ (Integer. x) (Integer. y)) (catch ArithmeticException e (.getMessage e))) ](println z)) ) 実行 $ lein run 1 2 1/2 $ lein run 2 0 Divide by zeroはい式でした堀江由衣を…
今回は try-catch ですとりあえずなんらかのExceptionを吐き出してくれる処理を用意します (ns hello.core) (defn -main [x y] (println x "/" y "=" (/ (Integer. x) (Integer. y)))) エラーを起こす方法は簡単ゼロで割ってやれば良いです $ lein run 2 0 E…
Clojure その13 テキストファイル読み込み3 - Sphereとともににコメント頂きました(@kawasima 先生ありがとうございます)詳しく見て行きましょう 単に中身を全部読み込むだけなら (slurp "/xxxxxxx/hello/src/hello/core.clj")行ごとに処理するなら、こう…
これでテキストファイルの中身をすべて読み込むことが出来ました (ns hello.core) (import '(java.io File FileReader BufferedReader)) (defn -main [] (let [reader (new BufferedReader (new FileReader (new File "/xxxxxxx/hello/src/hello/core.clj"))…
絶対パスにしたらいけた (ns hello.core) (import '(java.io File FileReader BufferedReader)) (defn -main [] (let [fi (new File "")] (println (.getAbsolutePath fi))) (let [reader (BufferedReader. (FileReader. (File. "/xxxx/hello/core.clj")))] …
テキストファイルの読み込みを行いたい・・・行いたいが・・・そんなファイルねーよって怒られる (ns hello.core) (import '(java.io File FileReader BufferedReader)) (defn -main [] (let [fi (new File "")] (println (.getAbsolutePath fi))) (let [rea…
Clojure その9 case - Sphereとともににコメント頂きました、がよくわからなかったので、直接聞きました@FScoward (case 評価対象値 値1 式1 ... 値N 式N) となっている値i 式i が偶数個で対になっている場合は「デフォルトなし」でマッチしない場合はエラ…
前回は case を使いましたが他にも cond というものがあるそうなcaseとcondの違い - すにぺっと (defn -main [member] (cond (= member "高垣彩陽") (println "スフィア") (= member "豊崎愛生") (println "スフィア") (= member "戸松遥") (println "スフィ…
今回はcase を使ってみましょうClojureDocs - clojure.core/case (defn -main [member] (case member "高垣彩陽" (println "ピンク") "豊崎愛生" (println "緑") "戸松遥" (println "オレンジ") "寿美菜子" (println "紫"))) $ lein run 高垣彩陽 ピンクここ…
SIerは生産性を高めるための次の言語を探っている(ようだ)話題に上がるのはやはり関数型言語関数型言語にすれば生産性があがるそうだ大抵そういう話をする人間は、SE全員が関数型言語を使えることを前提で考えているでも、SIerに勤めている人間で関数型言…
if やったら for かなとりあえず 1〜9 を表示するものを書いてみましょうちなみにScalaだとこんな感じ object Main{ def main(args: Array[String]) = { for(i <- 1 to 10){ print(i) } } } 勘でClojureを記述してみる (defn -main [] (for [i (range 1 10…
続いて条件分岐Scala では if は値を返す式です。Clojureではどうでしょう確認に入る前に変数の定義の仕方を知っておきたいですねググった結果def, letというのを見つけました簡単に言うと def は グローバル変数を定義let はローカル変数を定義する際に利用…
今回は関数を定義してみます引数に x と y をとって足し算した値を画面に表示するという関数を作ってみましょう関数定義には defn を使えば良さそうだというのは前回学びましたlein new した時に作られたものを見た限り引数を取るには [] を使用すれば良さそ…
ところで、当たり前のように書いている (ns hello.core) この一文一体なんなのかclojure ns でググれば一発ですがnamespace ですね。なんか、以下のページ見ると色々書いてありますが・・・ http://d.hatena.ne.jp/propella/20100701/p1Clojure のネームスペ…
さて、その3では引数を渡さなきゃ動かないものでしたが引数渡さんでも動くようにしたい・・・!ということで、ちょっと弄ってみましょう (ns hello.core) (defn -main (println "Hello, World!")) はい、残念 $ lein run Exception in thread "main" java.l…
はい正解はこちらでした (ns hello.core) (defn -main "I don't do a whole lot." [x] (println x "Hello, World!")) main じゃなくて -main なのねんで、実行時に引数渡さなきゃだめなのね $ lein run fscoward fscoward Hello, World!おいしいClojure入門 …
今回は実際に触るところまで環境は mac です。調べた限り leiningen(・・・レインいんげん?)というものを利用すると良いらしいとのことなので brew install leningenと打ってインストール lein new helloと打つと以下の様な感じでプロジェクトが作成され…
数ヶ月前から、弊社の凄い人が僕のいる部署に異動して来た (最近やっと関わりを持てた)その人がClojureを推していたので、ちょっと学んでみようと思う(ももいろクロージャーとか上手いこと言われて悔しかったのは内緒w)ディスるにせよ、ディスらないに…