Archive for 5月, 2011

2011/05/20

[Smalltalk] Sleep sortのpromise版

SmalltalkでSleep sort

VisualWorks限定であればPromise使えばもう少し短く書ける。Collection>>sleepSortedの実装は同じ。

Collection >> sleepSorted: toPositiveIntegerBlock
	| ans |
	self isEmpty ifTrue: [^Array new].
	ans := OrderedCollection new.
	(self collect:
			[:eachElem |
			[| val |
			val := toPositiveIntegerBlock value: eachElem.
			val seconds wait.
			ans add: val] promise]) do: [:p | p value].
	^ans

並行的に動いているのは、以下のようにすればわかる。

[#(4 5 3 1 2) sleepSorted] timeToRun => 5.000612 seconds

5秒より少し大きくなるのはスレッドの生成分などですね。

タグ:
2011/05/18

[Smalltalk] 第32回Smalltalk勉強会のお知らせ

5/30(月)は定例のSmalltalk勉強会です。テーマはPharo。ここへきて安定化が進み、日本でのユーザも増えてきた期待のSmalltalk処理系です。

組み込みのProfStefを使ってチュートリアル的なことをしようと思います。

ProfStefについてはここ

27日(金)にはAppleストアでのSmalltalkセミナもありますので、興味を持った人がそのまま参加されると良いなと思っています。

お気軽にどうぞ。