- 2008-03-05 22:56
- android

はてな界隈では関数型言語が大人気。
ギーク姉さんや、
Schemeスキスキスー!
・ギークへの最短距離はScheme
→ SHIROさんという方がナイスギーク(らしい
→ λかわいいよλ(オライリー本を横にするとλが見える
→ 特技はスキームです。というとギーク全体に大ダメージ(脳内解釈
→ 「Schemeスキー!」と叫ぶとdanちゃんも飛んでくる(かもしれない
元イイ嫁とか、
[日記]ざんねん。
ErlangをDLしようとしたけど重いのでやめた。30分もかかるようだ。ミラーも落ちてる。
はあー。。。とりあえず、これでもおいておきますね。
サイボウズ・ラボの人達まで。
わーい \(^o^)/ Scheme もどきを JS で書いたよー! by id:amachang
PythonでSchemeを作りました by id:nishiohirokazu
Scheme VM を書く by id:higepon
特にschemeは大人気。
1000speakersでも「λかわいいよλ」って発表されるぐらいに大人気。
λはじまったな。。。
ということで、Android OS上でもラムダラムダして〜w
Schemeの処理系の代表はGaucheでしょうか。
でも、大人の事情によりここではTinySchemeをAndroid上で動くようにコンパイル。
今回はScratchboxを構築してクロスコンパイルしてみました。
まずmakefileにちょっと小細工を入れておく。
42,44d41
< # Android
< PLATFORM_FEATURES =
< STATIC_FLAG = -static
72c69
< $(CC) -o $@ $(STATIC_FLAG) $(DEBUG) $(OBJS) $(SYS_LIBS)
---
> $(CC) -o $@ $(DEBUG) $(OBJS) $(SYS_LIBS)
あとはmakeするだけ。
するとschemeというバイナリができあがる。これが処理系。
scheme: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, statically linked, not stripped
ちゃんとstatically linkedになってます。
コンパイルしたschemeをAndroidに持っていく。
まずはAndroid OSの起動。
schemeを移動。
Androidにログイン。
Androidでschemeを実行。
# chmod 755 scheme
# ./scheme
> (define (puts str)
(display str)
(display “\n”) )
puts
> (puts “Lambda, you are pretty, Lambda!”)
Lambda, your are pretty, Lambda!
#t

ほら、アンドロイドでもλかわいいよλ!
アンドロイドもλの仲間入りに成功しました。
どう見てもナンチャッテです、本当にどうもありがとうございました。
MLが注目されるならOCamlももっと注目されて良いと思う。

ラクダかわいいよラクダ。
Gausheをとりあえずコンパイルして、依存関係を見る。
libgauche.so.0 => /home/adamrocker/tmp/Gauche-0.8.13/src/libgauche.so.0 (0×0023b000)
libdl.so.2 => /lib/libdl.so.2 (0×00c9a000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0×0347f000)
libutil.so.1 => /lib/libutil.so.1 (0×00564000)
libm.so.6 => /lib/libm.so.6 (0×00c71000)
libpthread.so.0 => /lib/libpthread.so.0 (0×00ca0000)
libc.so.6 => /lib/libc.so.6 (0×00b2f000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0×03384000)
/lib/ld-linux.so.2 (0×00160000)
あっ。pthred。
たしか…
# cd /system/lib
# ls libpthread.so
libpthread.so: No such file or directory
ないっすね…。これは面倒な事になりそうなので今回は華麗にスルー。
- Newer: AndroidでSQLiteを利用した実用的な入力補完の実装
- Older: Google Android完全解説を読みました
Comments:2
- 安藤恐竜 08-03-06 (木) 10:07
-
AndroidはuClibcなのでpthreadは端からなくてlibthread_dbですねー。
- adamrocker 08-03-06 (木) 11:27
-
おぉ!知らなかった。
というかuClibcという単語を始めて知りました(汗
となるとスレッド形は単純なクロスコンパイルだけでは上手く移植できそうにないですね。
Trackbacks:0
- Trackback URL for this entry
- http://www.adamrocker.com/blog/194/lambda_on_android.html/trackback/
- Listed below are links to weblogs that reference
- アンドロイドでもλかわいいよλ from throw Life
