これまで全然気付いてなかったのですが、NuGet パッケージマネージャを眺めていたら Rx-Aliases というパッケージがあることに気付きました。約 1 年程前からリリースされているようですが、ダウンロード数が 500 に到達していないあたりメジャーでない感じですね。気になったので、インストールしてちょこっと試してみました。
NuGet パッケージ
PM> Install-Package Rx-AliasesGitHub リポジトリ
System.Reactive.Observable.Aliases
提供されるメソッドの別名
少しばかり期待していたのですが、提供されるメソッドは以下の 3 つのみです。例えば射影であれば、.NET では LINQ のおかげで Select と呼びますが、他の言語では Map と言うのが一般的です。それに相当するものを提供したという感じですね。
既存名 | 別名 |
---|---|
Select | Map |
Where | Filter |
SelectMany | FlatMap |
利用してみると以下のような感じになります。名前が違うこと以外は特筆すべきことはありません。既存メソッドと混ぜることもできますが、当然ながら混乱を招くだけなので止めましょう。個人的には完全に不要論を唱えたいです。
Observable.Range(1, 5) .Filter(x => x % 2 == 0) .Map(x => x * x) .FlatMap(x => Enumerable.Range(x, 3)) .Subscribe(Console.WriteLine); /* 4 5 6 16 17 18 */
配置はアセンブリ参照ではなくファイルで
驚いたのが、アセンブリ参照として追加されるのではなく直接ファイルとして展開されることです。どうしてこれだけアセンブリ化されていないのかは謎です。