Comments (3)
👋 Yeah some names aren't straight forward and are chosen because of their resemblance to their list counterparts.
Additionally filter even with collections provides confusion, as what indeed it does is filtering OUT item(s)
Actually filter does filter, but it filters for the predicate value. Think of it like filtering for the thing you want. A coffee filter, filters for coffee (the liquid) and filters out anything else (the grounds).
Personally I find filter
weird also and would prefer filterFor
and filterOut
. Would be more clear when coffee filtering what you're looking for. (filterFor (fun x -> x.IsLiquid)
/filterOut(fun x -> x.AreGrounds)
That being said, I won't remove filter
as that kind of breaking change is not worth it. Also, Option.filter is already part are F# core, so this really wouldn't be solved here. You're still going to need your own alias module without this library.
As far as an alias, where does pop up and people familiar with LINQ/SQL would be more comfortable. I would be open to a PR adding where
in addition all the places filter
current exists.
from fstoolkit.errorhandling.
Thank you for a very good clarification. I agree with all of that, and indeed Option.where
seems to be a better alternative. These filterFor, filterOut also sound interesting. Let me play with it in the project and then I will prepare a PR.
from fstoolkit.errorhandling.
TaskSeq has a where for every filter, aligning with FSharp's general stance (even though for me it's a bit of a wart, and not an overall positive to have filter
and where
being identical given such redundant aliases are not present in anything else in F#)
Though the coffee rationale finally gives me a way to make peace with the filter
functions name, thanks!
from fstoolkit.errorhandling.
Related Issues (20)
- Make Result.defaultWith accept error, or remove it HOT 2
- Overload issues with TaskResult on generic functions HOT 2
- Add Option.ofPair HOT 5
- Add asyncValidation CE, or make asyncResult (and result?) CEs work with 'and!' HOT 4
- Can we reinstate `TaskResult.foldResult` and the like? HOT 4
- Add Light/Dark Theme Toggle to Gitbook Docs
- Support ValueOption in FsToolkit.Errorhandling.asyncOption HOT 3
- Support TaskValidation to match AsyncValidation HOT 2
- Binding Async<'T option * 'T option> to AsyncValidation is having overload errors HOT 1
- Common Language Runtime detected an invalid program HOT 2
- TaskOption/TaskResult defaultValue and defaultWith
- Support requireValueSome and requireValueNone in Result, TaskResult and AsyncResult
- Async/Job/Task wrapped result + require functions helpers
- feat(Seq): Add sequenceResultA HOT 6
- Readme video unavailable HOT 1
- usage with npgsql HOT 7
- TaskResultOption compatibility with TaskResult and friends HOT 4
- TaskResult `return! Error ()` results in a compiler error: "Type constraint mismatch". The type 'TaskResultCode<,'b,> is not compatible with type 'TaskResultCode<unit,string,'a>' HOT 2
- Combine use of Async.singleton & Async.retn
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 fstoolkit.errorhandling.