2012-03-01から1ヶ月間の記事一覧

相互再帰最適化

Pythonで相互再帰の末尾再帰最適化もできた Clojureで相互再帰最適化 Trampoline Trampolineというのがあるらしい。『プログラミングClojure』は読んだけどTrampolineの箇所はよく理解出来なかった記憶が。それにしても、Pythonだと拡張で末尾再帰最適化が可…

Luaは末尾再帰の最適化を行う

Lua

Luaは末尾再帰の最適化を行うらしい。プログラムを書いて確かめてみる。 function add(n) if n == 0 then return 0 else return 1 + add(n-1) end end function addTCO(n, acc) if n == 0 then return acc else return addTCO(n-1, acc+1) end end function …

Luaの長さ演算子

Lua

長さ演算子は単項演算子 # で表される。文字列の長さはそのバイト数である (つまり、各文字が1バイトだとした場合の、文字列の長さである)。テーブル t の長さは、 t[n] が nil でなく t[n+1] が nil であるような整数 n と定義されている。また、t[1] が ni…

カレンダーを表示するプログラムを作成してテストする

Lua

Luaでカレンダーを表示するプログラムを作成してみます。その後で作成したプログラムのテストについて考えます。まずは、calコマンドでカレンダー表示の確認。 $ cal 3 2012 3月 2012 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19…

Coronaでコンソールウィンドウを表示するには

Corona Terminalを実行すると、コンソールウィンドウが表示されます(同時にCoronaシミュレータも起動します)。

物体を落下させるサンプル

『基礎から学ぶ Corona SDK』を読みながら、Coronaで遊んでいます。Luaについても『入門Luaプログラミング』や『Programming in Lua』を読みながら勉強中です。Coronaには物理エンジン(Box2D)が組み込まれていて、物理シミュレーションを行うプログラムが手…

Coronaで遊ぶためにLuaを学ぶ

Lua

『入門Luaプログラミング』を読みながら、Lua勉強中です。CoronaでLuaを採用していて、きちんとLuaを勉強してみようと思いました。Luaはとてもシンプルな言語です。コルーチンが使えるのもいいですね。Emacsを使っている場合、C-c C-l(Send Buffer)でプログ…

プログラミング言語に対して、無頓着になりつつある

環境によって使用可能なプログラミング言語が制限され、自分の好きな言語が使えない。そのような日々が長く続くと、ある言語における力というものを忘れてしまうようになる。あの言語ではこの機能は使えない。だから、プログラムはこう書くしかない。そのよ…

モンティ・ホール問題

モンティ・ホール問題というのがある。 モンティ・ホール問題 「プレイヤーの前に3つのドアがあって、1つのドアの後ろには景品の新車が、2つのドアの後ろにはヤギ(はずれを意味する)がいる。プレイヤーは新車のドアを当てると新車がもらえる。プレイヤーが1…