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


って作られすぎだろ...。関数毎にクラスファイルが作られているようだ。中身もごちゃごちゃしててどうなってるのかさっぱりだ。困った。