Is it possible to add concrete implementation of monad for IObservable<'a> ?
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 30/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 領域
- tooling
調査の方向性
Control/Monad.fs から始め、既存の Monad CE サポートと System.Reactive.Linq の IObservable.Select、SelectMany、Observable.Return を比較します。予定外の System.Reactive 依存関係を導入せずに、具体的な IObservable<'a> インスタンスをそこに置くべきかを判断し、言及されている Using メソッドと Defer メソッドを検討します。サポート対象の範囲と依存関係の方針が解決されれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Currently IObservable<'a> works fine with map / |>>, but does not work with monad CE.
Since IObservable<'a> has LINQ extension methods IObservable.Select, IObservable.SelectMany and Observable.Return. It seems that it might be nature to have monad instance just following System.Reactive.Linq 's implementation.
As discussed in here, adding concrete implementation for IObservable<'a> in FSharpPlu.Control might be the easiest way to achieve this.
Is it possible to add monad instance concrete implementation directly to F#+?
If there is no other constrains, adding concreate implementation in Control/Monad.fs might be as easy as several lines of code to direct call IObservable<'a>'s corresponding extension methods.
But there might be some problems, like introduce dependency to System.Reactive, and maybe Using / Defer and other methods needs also be considered. But considering IObservable<'a> is already provided in System namespace, and Rx.Net is an popular functional style library, solving these problems might have enough benefits.
- 主要言語
- F#
- スター
- 942
- フォーク
- 106
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
fsprojects/FSharpPlus のほかの issue
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
fsprojects/FSharpPlus#683 · コメント 1 件 · リアクション 2 件 ·
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
fsprojects/FSharpPlus#678 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
fsprojects/FSharpPlus#644 ·
-
breaking change F#+ v2.0
難易度 4/5 3〜5日 初心者へのやさしさ 30/100
fsprojects/FSharpPlus#643 ·
-
lens type signatureオープンbreaking change F#+ v2.0
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
fsprojects/FSharpPlus#641 ·
fsprojects/FSharpPlus の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
mvanhorn/cli-printing-press#4980 ·
メンテナーはふだん 1 日以内に返信
-
good first issue lane:repo
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
voidzero-dev/vite-plus#2970 ·
メンテナーはふだん 1 日以内に返信
-
[Feature]: [P3] engine-rs: the package source hash should ignore line endings and untracked filesオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
maniator/verticopolis#880 ·
メンテナーはふだん 1 日以内に返信
-
priority: p3 type: feat
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
googleapis/librarian#7775 ·
メンテナーはふだん 1 日以内に返信