これまで、だいぶ目を背けていたのですが、ClojureとJavaを使うにあたり、そろそろClojureでJavaのクラスを作成したり継承したりというのを覚えてみようと思います。 う〜ん、遅いネタですねぇ…。 ま、気にせずいってみましょう。 まずは Clojureでソースを書きます。サンプルとしては、こんな感じ。 foo.clj (ns foo (:gen-class :methods [#^{:static true} [bar [String] String] #^{:static true}[fuga [] void] [echo [String] String]])) (defn -main [] (println "Hello World Main Method")) (defn -bar [name] (str "Hello World By " name " !!")) (de
ふと思い立ってClojureの勉強を始めることにしました。 - 達人プログラマーを目指してで書いたように、10日前にClojureの勉強を始めました。まだ勉強を始めたばかりのということもあり、他人に上手く正確に説明できる段階ではないかと思いますが、自分自身超初心者の立場で書くということも有意義であると思うので、間違いを恐れずに今まで理解したことのポイントについて書いてみようと思います。*1 スカラー値のリテラル ClojureはREPL(Read Eval Print Loop)という対話的実行環境を持つので、いきなり大きなプログラムを作成しなくても、一行一行結果を確認しながら勉強することができます。したがって、数値や文字列などのリテラルをREPLのプロンプトに入力すると、値がそのまま結果として返ってくることが確認できます。 user=> 0xff 255 user=> 0377 255
リストの第一要素がシンボルなら関数として起動できるのかな?と思っていたんだがどうも違うらしい。 とりあえず、printlnを例として。(symbol 文字列) でシンボルは作れるらしい。 $ clj Clojure 1.4.0 user=> (symbol? 'println) true user=> (= 'println (symbol (str "print" "ln"))) true でも、実行しても期待の動作をしてくれない。なんでだろう。 user=> (println "hello") hello nil user=> ((symbol (str "print" "ln")) "hello") nil user=> (if true "yes" "no") "yes" user=> ((symbol "if") true "yes" "no") ArityException W
こんにちは。とりあえず構文の説明が終わり、後は実際に機能をコードを書きながら確認していく形になりそうですね。 ClojureコードはJavaバイトコードに直接コンパイルされ、Javaを呼び出す際に変換が挟まれることはない。 Clojureは直接JavaのAPIを活用できる。 普通、ClojureのコードはJavaのAPIを生で実行し、Lisp風にすることはない。 → これは結構大きい要素ですね。LispっぽいけどやはりJVM言語と思えるのはこの要素があってこそ。 その他のポイント。 Javaの呼び出しは単純で直接的 プリミティブ型、配列についてのサポートと型ヒント(リードメタデータで定義)によってClojureのコンパイラにJavaのコンパイラの出力と同等のコードを出力させることができる JavaからClojureを呼び出すことも出来る。ClojureはJavaのクラスを動的に生成できる
そろそろ、Clojureでもビルド・依存関係管理ツールを触ってみようかと思います。Clojure界隈ですと、間違いなくLeiningenが候補となるので例に漏れずこちらで。 Leiningenとは? Clojureでのビルド・依存関係管理ツールで、プラグインなども豊富にあるようです。JavaでいうMavenやScalaでいうsbtの位置付けにあると思います。 Leiningenのオフィシャルは、Githubと合わせて2つあります? http://leiningen.org/ https://github.com/technomancy/leiningen/ なお、今回使用するLeiningenのバージョンは 2.0.0-preview7となります。安定版ではないようですが、1.x系からは移行が進んでいるようですのでまあいいでしょ。 それにしても、バナーのおじさんが渋すぎる… まずはインスト
2014/06/07 追記 現在windowsでliningenインストールするならこちらを使えば一発です。 http://leiningen-win-installer.djpowell.net/ 以前「Clojureのビルドツール"Leiningen"を使ってみた」という記事を書きました。Leiningenを使えば簡単にClojureのビルドが出来て大変便利です。これをUbuntuだけではなくWindowsで利用する手順をメモしておきます。え?なぜWindowsでClojure書くのかって?ハハッ察してくださいXD 手順はめちゃくちゃ簡単です。 https://github.com/technomancy/leiningen/downloadsからWindows distributionの最新版を取得(2012/1/19現在Leiningen 1.5.2が最新) 解凍したフォルダを適当
The document shows code examples of printing "Hello" greetings in different programming languages like Common Lisp, Scheme, Clojure, Ruby, and using different approaches like functions, macros. It also demonstrates basic Clojure REPL usage, loading files, documentation lookup, source viewing, and different ways to read lines from a file in Clojure.
The original document appears at http://clojure.org/rationale. The translation is based on November 27, 2009 version of the page. 読みにくくて申し訳ないです。数多くの間違いがあると思いますので、ご指摘ください。 顧客や出資家は、業界標準のプラットフォームであるJava仮想マシン (Java Virtual Machine; JVM) に相当な投資をしており、そのパフォーマンス、セキュリティ、安定性などに満足している。Java開発者は、動的言語の簡潔さ、柔軟さ、生産性をうらやましく思うものの、顧客の環境で動かせるかどうか、既存のコードやライブラリが使えるかどうか、そして動作速度などについて心配するかもしれない。また、ネイティブ・スレッドやロッキングによる並行処理に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く