2011-06-30 11 views

答えて

8

ほとんどのSmalltalkはthisContextオブジェクトにスタック操作メソッドを持っています。このレベルでスタックを扱うのはちょっと面倒かもしれませんが、これらを使ってコルーチンを実装することができます。

GNU Smalltalkのとスクイークとファーロの最近のバージョンはまた、発電機を書くことが容易になりGeneratorクラスを提供します(複数の値を得コルーチンのすなわちタイプ):

"This generator yield an infinite sequence of 1" 
generator := Generator on: [ :gen | [ gen yield: 1 ] repeat ]. 

(1 to: 100) do: [:i | Transcript show: (generator next printString); cr] 

http://ideone.com/7zWTx

+0

ジェネレータの実装がPharo 1.3でも利用可能かどうか知っていますか? –

+1

@Davorinいいえ、そこに[公開するには問題があります](http://code.google.com/p/pharo/issues/detail?id=3527)。 –

+0

ジェネレータはPharo 1.4に入っています。答えにPharoを追加する。 –

関連する問題