2007年6月15日金曜日

Amabrai Smalltalk(001- window)

前回のF-Scriptのコードからついで,Amabrai Smalltalkのwindowも実行してみた.

Amabrai Smalltalk

window := MacWindowFrame new position: 100@100;
extent:300@300.

window open.

こちらの方がSqueak(Smalltalk)で好きですが,F-Scriptの方が開発環境はSqueak(Smalltalk)に近いような気がします.

やっぱり僕はSqueakが一番好きです.

F-Script and Squeak (001 - window)

F-Script とSqueakのコードを比較してみたいと思ったので,Windowを開くだけの単純のProgramを書いてみました.

F-Script

> window := NSWindow alloc initWithContentRect:(100<>100 extent: 300<>300) styleMask:NSTitledWindowMask+NSClosableWindowMask backing:NSBackingStoreBuffered defer:true

> window orderFront:nil


Squeak

window := SystemWindow new bounds:(100@100 extent:300@300).
window openAsIs




参考 マイコミジャーネル
う〜ん,どちらも似ていますね.(当たり前かな?)
SqueakでMorphを開くのはいつもopenInWorldなのですが,今回は大きさを最初に指定して,開くというCodeが書きたかったので,openAsIsを使ってみました.

この調子でがんばれば,Objective-Cなしで,MacのApplicationが書けるのかな?

ただ少しObjective-Cのノウハウがあった方がよさそうですね.

2007年6月13日水曜日

TwoPTextEditer0.01

SqueakでMorphを使ったツールを作成.

といってもすごく簡単なツール.
Workspaceが二段になっているものです.

使用方法はまた書きます.

よかったら使ってください.

TwoPTextEditer0.01.st

対応Version Squeak 3.8,3.9

このツールを使って何らかの問題が発生しても,責任はとれませんのでご了承ください.

2007年6月4日月曜日

reverse

最近関数型をほんの少し勉強して気になったこと.

reverse.
リストを反転させるものです.

SqueakやRuby,Pythonでもおなじみの機能です.

ところでSqueakではreverseはどのように動いているのでしょう.

ちょっと調べてみました.

reverseはSequenceableCollection>>reverseが元のよう.そのなかではself reversedをしているのでそちらを参考.



SequenceableCollection>>reversed

"Answer a copy of the receiver with element order reversed."
"Example: 'frog' reversed"

| n result src |
n := self size.
result := self species new: n.
src := n + 1.
1 to: n do: [:i | result at: i put: (self at: (src _ src - 1))].
^ result

なるほど・・・.

Squeakってプログラミングの勉強にもなりそうですね.

へっぽこ学生(自分のこと)にはかなりいい教材です.