Juliaのmap関数

map関数で、文字列を数値のリストに変換しようと思ったのだけどエラー(type error)になる。 型変換が入るとダメなのだろうか。 ~ $ julia _ _ _ _(_)_ | (_) | (_) (_) | _ _ _| |_ __ _ | A fresh approach to technical computing | | | | | | |/ _` | | |…

Luaの真偽値

Lua

Luaでは、falseとnilが偽となり、それ以外の値は全て真です。 function test(x) if x then print("true", x) else print("false", x) end end function main() tab = { -1, 0, 1, "", "string", {}, { 1 }, { test=2 }, main, true, false, } for i = 1, #ta…

Luaのgoto文

Lua

Lua 5.2からgoto文が入りました。 function main() for i = 1,10 do for j = 1,10 do if i == 1 and j == 3 then goto exit end print(i, j) end end print("end for loop") ::exit:: print("exit") end main() 実行結果です。 1 1 1 2 exit 参考: lua-users…

re.findall()

忘れるのでメモ。 Python 3.2 (r32:88452, Feb 20 2011, 11:12:31) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import re >>> re.findall("ab+", "ababaabb") ['ab', 'ab'…

矩形をドラッグするサンプル。setFocusを使う。

矩形をドラッグするサンプル - noriok's diaryでは、矩形をドラッグするサンプルを作りました。ドラッグ中にマウスをいきおいよく動かし、マウスポインタが矩形の領域外に出てしまうと、イベントが矩形に伝達されず、矩形がその場で止まってしまう問題があり…

Luaのnilは型であり、その値はnilです。

Lua

Luaのnilは型であり、その値はnilです。 function main() print(nil) print(type(nil)) end main() 実行結果です。 nil nil

浮動小数点演算の誤差についての誤解

Lua

『Programming in Lua プログラミング言語Lua公式解説書』p.28ページより。 浮動小数点演算の誤差については広く誤解されており、浮動小数点数では単純に 1 を加算するだけでも悲惨な状況になると恐れている人もいます。実際のところは、倍精度浮動小数点数…

コルーチンの練習

Lua

コルーチンの練習です。 function main() co = coroutine.create(function() coroutine.yield(1) coroutine.yield(2) end) print(co) print(coroutine.status(co)) print(coroutine.resume(co)) print(coroutine.status(co)) print(coroutine.resume(co)) pr…

数値の表記が e を使ったものに切り替わるタイミング

Lua

2^i をプリントするプログラムを作成しました。 function main() for i = 1,50 do print(i, 2^i, type(2^i)) end end main() 実行結果です。 1 2 number 2 4 number 3 8 number 4 16 number 5 32 number 6 64 number 7 128 number 8 256 number 9 512 number…

矩形をドラッグするサンプル

矩形をドラッグするサンプルを作りました。 local _rect -- 矩形 function listener(event) event.target.x = event.x event.target.y = event.y return true end function main() local x = display.contentWidth/2 local y = display.contentHeight/2 loca…

CGAffineTransformConcatの疑問

ViewControllerのviewDidLoadメソッドでラベル(UILabel)をビューに追加し、そのラベルに対して、アフィン変換で移動と回転を適用しました。 @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after l…

タッチ位置の周りを回る矩形

iOS

前回のタッチ位置に矩形を表示するサンプル(iOS)の続き。タッチ位置の周りを回る矩形を描画するサンプルです。時計回りに回転する矩形と、反時計回りに回る矩形の2つを表示しています。前回のプログラムのdrawRect:のみの修正です。 - (void)drawRect:(CGRec…

タッチ位置に矩形を表示するサンプル(iOS)

iOS

Coronaで作成したタッチ位置に矩形を表示するサンプルをiOSでも書いてみました。 // ViewController.h #import <UIKit/UIKit.h> #import "MyView.h" @interface ViewController : UIViewController { MyView* _myView; } @end // ViewController.m #import "ViewController.</uikit/uikit.h>…

UISliderを使ってRGBカラーを表示するプログラム

iOS

UISliderを3つ使って、RGBカラーを表示するプログラムを作りました。 // ViewController.h #import <UIKit/UIKit.h> #import "MyView.h" @interface ViewController : UIViewController { MyView* _myView; UISlider* _sliderR; UISlider* _sliderG; UISlider* _sliderB; } </uikit/uikit.h>…

タッチ位置に矩形を表示するサンプル

タッチ位置に矩形を表示するサンプルです。rotate()メソッドで矩形を常に回転させるようにしています。rotate()メソッドは正の値を指定すると時計回り、負の値を指定すると反時計回りに回転します。 local _rect -- 矩形 local _touchX -- タッチ座標X local…

相互再帰最適化

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…

矩形の重なりを求めるプログラム

二つの矩形の重なり領域を求めるには、次の方法で求められるようだ。 // 二つの矩形の重なり部分を求める。 static CGRect intersect(CGRect a, CGRect b) { float sx = MAX(a.origin.x, b.origin.x); float sy = MAX(a.origin.y, b.origin.y); float ex = M…

ダブルバッファリング

UIViewのサブクラスを定義してdrawRect:で以下のコードを実行。NSTimerで定期的に再描画。 - (void)drawRect:(CGRect)rect { static int y = 0; CGContextRef c = UIGraphicsGetCurrentContext(); CGContextSetRGBStrokeColor(c, 0, 1, 0, 1); CGContextSetL…

JavaScript勉強中

『パーフェクトJavaScript』の5章を読んでいます。トップレベルのthisにはグローバルオブジェクトが格納されている。 js> this; [object global] js> function foo() { print(this); } js> foo(); [object global] js> new foo(); [object Object] [object O…

JavaScriptはじめの一歩

JavaScriptを勉強したいと思ったのは、静的なHTMLの表現をどれくらい豊かに出来るのか興味があるから。個人的な勉強メモなどをテキストで書いて、閲覧するときはそれをHTMLに変換して読んでいるのだけど、ちょっと使いにくいと感じる面があって、それをもう…

今年はJavaScriptを勉強しよう

どれだけ続くか分からないけど、JavaScriptを勉強してみようと思います。 JavaScriptに関しては、1行もコードを書いたことが無い状態。結城さんの勉強日記の書き方を読み返す。当たり前のことを書こう。分かったこと分からないことを書こう。丁寧に書けるか…