Clojureのバイトコード
Clojureを実行するときって、どういうバイトコードになっているんだろう?
クラスファイルを作る
まず、クラスファイルを出力するために:gen-classを付加する。
(ns clj.core (:gen-class)) (defn fuga [x y] (+ x y)) (defn hoge [] (fuga 10 20))
$ cd [project] $ lein compile
これで.classファイルがclassフォルダ配下に作成される。
作成されたクラスファイル
$ ls core$fn__50.class core$loading__4910__auto__.class core$fuga.class core.class core$hoge.class core__init.class
って作られすぎだろ...。関数毎にクラスファイルが作られているようだ。中身もごちゃごちゃしててどうなってるのかさっぱりだ。困った。