Comments (4)
I agree with this 100%. I find the existing Effect.filterMap
API strange anyways.
from effect.
Seems like there's a matrix of types in/out that can be built:
boolean OUT |
Effect<boolean> OUT |
|
---|---|---|
Array IN |
Array.filter | Effect.filter |
Array<Effect> IN |
Effect.filterMap & ignore result | ? |
and a similar one for filter map
T OUT |
Effect<T> OUT |
|
---|---|---|
Array<T> IN |
Array.filter().map() | Effect.filter > Effect.flatMap |
Array<Effect<T>> IN |
Effect.filterMap | ? |
from effect.
Wondering if we shouldn't take a different strategy, I currently see a number of issues:
- filter can't refine unless for simple scenarios where a Refinement can be supported
- filterMap is verbose and requires mixing values with options
- filter + filterMap are kind of variants of the same principle and we are duplicating APIs
I have started playing around with the following idea: https://effect.website/play#b7c0272daa18
It looks to me much less verbose and it allows in one shot to both filter/refine and to map
from effect.
I've placed omit
inside the filter function to reduce the noise but it could very well be exported from the main effect
module and declared in something like Predicate
from effect.
Related Issues (20)
- Expose internals used in JSONSchema so we can write our own interpreters
- From Discord: Help Needed with HttpApp Middleware and Type Errors HOT 1
- From Discord: Handling Errors in Layer Instantiation and Bootstrapping in Complex Apps
- From Discord: Unexpected Behavior in HTTP Middleware: Unhandled Errors Cause Request Hang HOT 3
- Prompt.file filter does not provide enough context to filter files
- From Discord: Bug Report: Incorrect Type Inference with `Effect.repeat`
- Using Bun with @effect/vitest, tests fail to run HOT 1
- `Stream.zip` for more than two streams HOT 2
- Support binary values in KeyValueStore
- `Array.gen` expressions as in `Option.gen` or `Either.gen` HOT 1
- Separate and export the return types of function definitions HOT 3
- From Discord: Different Return Types in Curried vs Non-Curried `attachPropertySignature` in TypeScript
- Config: Expected VALUE to exist in the process context HOT 3
- From Discord: make json schema output more compatible with Open AI structured output
- Dynamic Scope access causes a memory leak
- Passing a default value to `Prompt.text` from @effect/cli has no effect. HOT 4
- Dual overload signature problem HOT 4
- IndexedDB support in browser platform package
- From Discord: Proposed Do Notation Syntax: `bindAll` with Unbounded Concurrency
- Problem fetching data using the "@effect/platform" library HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from effect.