2013-03-15 3 views
6

誰もがプログラミング言語は、あなたがこれを使用することができている知っています:とき(式){ものを行う}

when(expression){ do stuff } 

表現して順番にすべての解析され、いくつかの配列のコードブロックを登録することになっていますQ mili-/micro-/nanosecondsをバックグラウンドスレッドで置き換え、真と評価されるすべての式に対して、それぞれのコードブロックを実行します。

私はすでに実装していると思います。私はそれがいくつかのプログラミング言語でネイティブにサポートされることがうれしいと思うので、私は尋ねています。

あなたのプログラムにいくつかの変数/オブジェクトを作成することを想像してみてください。変数/オブジェクトがある値/状態。利点は、コードを変数/オブジェクトにバインドする必要がなく、さらにwhen(){}を宣言するときに存在する必要がないことです。 これは何らかのトリガーとなるでしょう

+0

興味深いですが、言語でネイティブに実装されていると聞いたことはありません。最も近いことはおそらくイベントでしょうか?しかし、それはアプリケーションに依存していても、それほど言語の実装ではありません。また、エンドコードライターではなく、最初の著者に依存します。 –

+0

Androidの放送受信機のように見えますが(構文は異なる) –

+0

これらがグローバルスケールで実装されていれば、カプセル化の原則に反します。 – Jodes

答えて

0

SR言語は、探しているものと非常によく似た構造をしています。 構文はここ

do guard -> command 
[] guard -> command 
[] guard -> command 
... 
od 

あなたは情報(および実装)を見つけることができますがあります。http://www.cs.arizona.edu/sr/

0

私はあなたが記述するもののような任意の言語レベルの構造を知りませんが、それは何ReactiveXに原則的に類似したサウンドをその観察可能なことをする。 Observable型はJavascriptの将来のバージョンにも組み込まれる予定です。

それは少し違って見える:

observable.doNext(() => { // do stuff }) 

対:

when(expression) { // do stuff } 

の例では、あなたの表現が観測ReactiveXに似何かを返します与える、と文の本体は、可能性があり.doNext(() => do stuff)と等しい。事実、Rxは観測可能なさまざまなイベントを処理するためのいくつかのオプションを提供しており、実際に強力な処理を行うことができ、連鎖操作が可能です。

関連する問題