で、実際遊んでみる。
i@um idst-5.7/examples/jolt> ./main boot.k - Welcome to Jolt 0.1 [VPU 4.0.3 i386 darwin 2006-07-10 10:55:35] ; loading: 'boot.k ; loading: 'quasiquote.k ; loading: 'syntax.k ; loading: 'object.k .(define puts (_dlsym _RTLD_DEFAULT "puts")) => 268551648 ."hoge" => 6306608 .(puts "hoge") hoge => 10 .(puts 2) zsh: bus error ./main boot.k -
うーん面白いなーもうちょっと遊んでみた。
i@um idst-5.7/examples/jolt> ./main boot.k - Welcome to Jolt 0.1 [VPU 4.0.3 i386 darwin 2006-07-10 10:55:35] ; loading: 'boot.k ; loading: 'quasiquote.k ; loading: 'syntax.k ; loading: 'object.k .(define hoge "hoge") => 6306864 .(define puts (_dlsym _RTLD_DEFAULT "puts")) => 268551648 .(define qsort (_dlsym _RTLD_DEFAULT "qsort")) => 268453280 .(define strcmp (_dlsym _RTLD_DEFAULT "strcmp")) => 268444496 .(qsort hoge 0 0) => 6306864 .(qsort hoge 4 1 strcmp) => 103 .(puts hoge) egho => 10
qsort に callback をあえて渡さないギリギリ感がたまらない。あと qsort が返り値持ってるとか素敵よね。
ああくそうくやしいなぁ私もこいうの作りたかったわけで。まぁ今年中くらいにはなんか作りかけのインタプリタなんかしようか。したいな。できるといいな。