Is it possible to add concrete implementation of monad for IObservable<'a> ?
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Área
- tooling
Línea de trabajo
Comienza en Control/Monad.fs y compara el soporte existente de Monad CE con IObservable.Select, SelectMany y Observable.Return de System.Reactive.Linq. Determina si allí debe incluirse una instancia concreta de IObservable<'a> sin introducir una dependencia no planificada de System.Reactive, y considera los métodos Using y Defer mencionados. Se considera terminado cuando se hayan resuelto el alcance compatible y el enfoque de dependencias.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- F#
- Estrellas
- 942
- Forks
- 106
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fsprojects/FSharpPlus
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fsprojects/FSharpPlus#683 · 1 comentario · 2 reacciones ·
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
fsprojects/FSharpPlus#678 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
fsprojects/FSharpPlus#644 ·
-
breaking change F#+ v2.0
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
fsprojects/FSharpPlus#643 ·
-
lens type signatureAbiertobreaking change F#+ v2.0
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
fsprojects/FSharpPlus#641 ·
Todos los issues de fsprojects/FSharpPlus
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
zerocracy/judges-action#2729 ·
Los mantenedores suelen responder en 8 días
-
agent/scanner bug hive/hosted-available-lke648397-260827-5n31
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Add `django-upgrade` to the CIAbiertodependencies feature github_actions good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
wemake-services/wemake-django-template#3149 ·
Los mantenedores suelen responder en 1 día
-
`Processing lsp` never exits and leaves orphaned processesPosiblemente ocupada @overcast302 la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
processing/processing4#1578 · 1 comentario ·
-
autoInject recall silently drops memory injection on long / non-Latin prompts (HTTP 400 Query too long)Posiblemente ocupada @Epsilon006 la tomó hoy. Abiertointegration:coding-agents
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
vectorize-io/hindsight#5476 · 1 comentario ·
Los mantenedores suelen responder en 1 día