lolipop candy(fruit strawberry) このページをアンテナに追加

goto

2011-11-10 LuaでのCodify風のクラス記述処理

[]iPad上でProce55ingの様に書けるLua環境Codify iPad上でProce55ingの様に書けるLua環境Codifyを含むブックマーク

http://twolivesleft.com/Codea/

Proce55ingAPI意識して作られている上に、エディターやカラーピッカーまで付いててすごい。

コード補完も便利で、ちょっとしたプロトタイピングには最高の環境じゃなかろうか。


ただし、アプリの制限でファイルの入出力が出来ないので画像ファイルセットを新しく用意するとかが出来ない。

せめて外部へのプロジェクトファイルの入出力があるだけでも良いんだけど、現状だと自分一人で満足する事しかできないのが残念だ。

[]class記述を簡潔に書けるようにする classの記述を簡潔に書けるようにするを含むブックマーク

Codifyでclass記述する時の方法が以下の様な感じで、metatableを意識しないで書けるのがとても良かったので実装してみた。

Vec3 = class()
function Vec3:init(x,y,z)
	self.x,self.y,self.z = x,y,z
	print("vec3:init",x,y,z)
end
function Vec3:dump()
	print("vec3:dump",self.x,self.y,self.z)
end
function Vec3:set3(x,y,z)
	self.x,self.y,self.z = x,y,z
	print("vec3:set3",self.x,self.y,self.z)
end


Vec4 = class(Vec3)
function Vec4:init(x,y,z,w)
	self.x,self.y,self.z,self.w = x,y,z,w
	print("vec4:init",x,y,z,w)
end
function Vec4:dump()
	print("vec4:dump",self.x,self.y,self.z,self.w)
end


local v4_1 = Vec4(3,2,1,0)
local v3_1 = Vec3(4,5,6)
local v4_2 = Vec4(0,1,1,0)
local v3_2 = Vec3(7,8,9)

v4_1:set3(2,2,2)
v4_1:dump()
v4_2:dump()
v3_1:dump()
v3_2:dump()

__callを使えば出来そうって所までは直ぐに気がついたけど、__callの第一引数に呼び出した際のテーブルも一緒に渡されて来るのが分からなくて微妙にハマった。

Luaマニュアル読んでもそんな事一ミリも書かれてないし。。。


可変引数でググッたらselect文を使えば良いよと書いてあったのでそうしてみた。


select(x,...)

x番目以降の可変引数戻り値で返せるらしい。

以前のバージョンだと配列としてアクセスする方法があったような気がするんだけど無くなってしまったのか。


実装してみたら意外とシンプルに収まった。

function class(parent)
	local base = {
	}
	local mt = {
		__call = function(...)
			local mt = setmetatable({},{__index=base})
			mt.init(mt,select(2,...))
			return mt
		end
	}
	if (parent) then mt.__index = parent end
	
	return setmetatable(base,mt)
end

さり気なくクロージャーが生かされているのが渋い。

クロージャー使わなくても出来る方法があるような気がしないでもない。

トラックバック - http://d.hatena.ne.jp/tattyu/20111110

2011-10-24 ダァシェリェス

[]ダァシェリェス ダァシェリェスを含むブックマーク

ブレインファック系の言語はそろそろゲップが出そうな感じだけども、たまにはやってみようかと思ったが入力が思いの外めんどくさいので中間言語(ってほどでも無いが)にしてみた。

syelies=<<EOS
inc
incd*H
inc
incd*e
inc
incd*l
inc
incd*l
inc
incd*o
inc
incd* 
inc
incd*W
inc
incd*o
inc
incd*r
inc
incd*l
inc
incd*d
inc
incd*!
do
dec
wh
inc
do
put
inc
wh
EOS

dic={
"incd"=>"ダァ", #buf[ptr] += 1
"decd"=>"ダア", #buf[ptr] -= 1
"inc"=>"シェリ", #ptr += 1
"dec"=>"シエリ", #ptr -= 1
"put"=>"イェス", #print chr(buf[ptr])
"get"=>"イエス", #input ord(buf[ptr]) …ただしこれはWeb版のため無効
"do"=>"!", #do{
"wh"=>",", #}while(buf[ptr]!=0)
}

syelies.each_line {|ln|
	v = ln.chomp.scan(/(\w+)(\*?)(.?)/)[0]
	op = dic[v[0]]
	if op
		t = 1
		t = v[2][0] if v[2]!=""
		t.times {print op}
	end
}

ダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァシェリダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァダァ!シエリ,シェリ!イェスシェリ,

http://lyia.net/kq.php

メタ言語記述するとまるで面白くもなんとも無くなってしまうのが微妙。。。

トラックバック - http://d.hatena.ne.jp/tattyu/20111024

2011-07-08 COOLオンライン終わってしもうた!

[]COOL終了 COOL終了を含むブックマーク

P55のアプリとかソース置き場に使ってたCOOLが6/30で終わってしまってた!

過去ソースを参照しようとしたらこの有様だよ!

クソが!


まだデータサルベージ出来るかな?

ホント勘弁して欲しいわ。。。


サルベージ出来た!FTPはまだ繋がる。

7月中旬までって。。。たまたま気がついたから良かったものの。


さて、どこにアップしようかな。

トラックバック - http://d.hatena.ne.jp/tattyu/20110708

2010-11-15 MacBookAirこうた

[]11インチ 11インチを含むブックマーク

twitterのゆるい感じが良くてmixihatena更新がめんどくさくなり大分放置してた。

今後もほぼ放置だろうなw


そんな感じで物欲センサーMAXになったので思わずMacBookAir 11インチを買った。

11インチで一番良いのを頼む。

晴れて憧れのマカーになれました。プギャー!

今年に入ってからのアップルやばい。AppleTV欲しい。


キーバインドがいきなりUnix仕様になってて戸惑うけど他は思ったよりWindowsに似てるのでなんとか使えてる感じ。

ことえりがなんとなくキモイのでGoogleIMEにした。

ブラウザChromeにして、ホームページiGoogleにしたのでブックマークとか移さなくても大体問題ない感じ。

シンクライアント良いね。

FlashSilverLightも入れたのでShowTimeし放題。


XCodeも入れたしこれで念願のiPhoneアプリの開発が出来る。

他になんか入れたほうが良いよ?とかいうのがあれば是非教えてください。


メモ

二本指を上下にスライドスクロール

三本指を左右にスライドで「進む」「戻る」

四本指を上下にスライドエクスポーズ

2010-08-16 久保さんへ このエントリーを含むブックマーク

101 : 翻訳家(東京都):2010/08/16(月) 16:39:44.10 ID:ysDSAXrc0

A「オマエはBLEACHよりおもしろい漫画が描けるんだな?描けないのに批判するな!」

B「漫画描いてみたよ、ほら」

A「なんだこれ、糞つまんねー」

B「ちょっと待て、俺の漫画を批判するのは俺よりおもしろい漫画を描いてからだ」

A「描いたぞ」

B「どっちがおもしろいか第三者に聞いてみないとな」

A「よし、Cに聞いてみよう」

B「ちょっと待て、それはCがおもしろい漫画を描いてからだ」

トラックバック - http://d.hatena.ne.jp/tattyu/20100816
プロフィール

tattyu

tattyu

アイムノーマン

<< 2018/01 >>
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31


Program



ダイアリ あんて な



3D



Proce55ing



PDAあんて な



BlogPet