遅延シーケンス、並列コンピューティング、Javaとの連携等々が特徴。
まず試しにいつものこれ。
- (println "hello Clojure!")
次にFizzBuzz。
- (defn fizz-buzz [n]
- (if (not= n 0)
- (do
- (fizz-buzz (- n 1))
- (if (= (mod n 15) 0)
- (println "FizzBuzz")
- (if (= (mod n 5) 0)
- (println "Buzz")
- (if (= (mod n 3) 0)
- (println "Fizz")
- (println n)))))))
- (fizz-buzz 31)
- (import '(java.sql DriverManager)
- '(java.sql Connection)
- '(java.sql PreparedStatement)
- '(java.sql ResultSet))
- (Class/forName "org.sqlite.JDBC")
- (def con (DriverManager/getConnection "jdbc:sqlite:test.db"))
- (def st (.createStatement con))
- (.execute st "create table table1( msg string, id integer )")
- (.execute st "insert into table1 values (\"Fizz\", 3)")
- (.execute st "insert into table1 values (\"Buzz\", 5)")
- (.execute st "insert into table1 values (\"FizzBuzz\", 15)")
- (defn print-result [rs]
- (if (.next rs)
- (do
- (println (.getString rs 1) (.getInt rs 2))
- (print-result rs))))
- (print-result (.executeQuery st "select * from table1"))
- (.close st)
ちなみに、わざわざJavaからやらなくてもclojure.contribというのを使えば利用できるそうな。
Clojureが無理だとしても、Blogger Syntax Highliterがlispをサポートしてないことに衝撃。
prettifierと併用。それでも微妙に変・・・。
参考にしたページを私的メモ
Clojure
「プログラミングClojure」
Clojure Javaのコンストラクタ、メソッド、フィールドへのアクセス
Clojure のエレガントなところ
SQLite from Clojure
0 件のコメント :
コメントを投稿