ci-fsharp-optionbuilder - FSharp.Interop.NullOptAble 0.8.0-alpha29
option & chooseSeq computational expressions
PM> Install-Package FSharp.Interop.NullOptAble -Version 0.8.0-alpha29 -Source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json
> nuget.exe install FSharp.Interop.NullOptAble -Version 0.8.0-alpha29 -Source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json
> dotnet add package FSharp.Interop.NullOptAble --version 0.8.0-alpha29 --source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json
source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json
nuget FSharp.Interop.NullOptAble ~> 0.8.0-alpha29
Copy to clipboard
> choco install FSharp.Interop.NullOptAble --version 0.8.0-alpha29 --source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v2
Import-Module PowerShellGet
Register-PSRepository -Name "ci-fsharp-optionbuilder" -SourceLocation "https://www.myget.org/F/ci-fsharp-optionbuilder/api/v2"
Install-Module -Name "FSharp.Interop.NullOptAble" -RequiredVersion "0.8.0-alpha29" -Repository "ci-fsharp-optionbuilder" -AllowPreRelease
Copy to clipboard
Browse the sources in this package using Visual Studio or WinDbg by configuring the following legacy symbol server URL: https://www.myget.org/F/ci-fsharp-optionbuilder/symbols/
FSharp.Interop.NullOptAble
Missing OptionBuilder for F# filling the void to interop with C#'s ?.
usage.
It works with Nulls, Options, Nullables.
Build Statuses:
Basic Info
There are more C# devs relying on the safe nav operator ?.
and so nulls will only get worse on the C# side, making it more likely null's are going to drop out of APIs.
This project creates an option { }
computational expression and chooseSeq { }
computational expression that allows binding 'T option
/'T Nullable
/'T:null
thus either returns an option or a sequence respectively.
With chooseSeq
if you yield!
another chooseSeq it will work recursively flatten or any sequence of NonNullSeq
, list, or Set type. Any other sequence will be treated like a T:null
object yield!
and let!
work with 'T option
/'T Nullable
/'T:null
Examples
let x = Nullable(3)
let y = Nullable(3)
option {
let! x' = x
let! y' = y
return (x' + y')
} |> should equal (Some 6)
See more examples in Tests/RealWorld.fs.
Operator Examples
This library also has some operators available when specifically included
using FSharp.Interop.NullOptAble.Operators
You can find examples of them in Tests/RealWorldOperators.fs.
- .NETStandard 1.6: 1.6.0.0
Assembly | Assembly hash | Match |
---|---|---|
/lib/netstandard1.6/fsharp.interop.nulloptable.dll | 730250423858473daa2c035243741b96FFFFFFFF |
OwnersJay Tuley |
AuthorsJay Tuley |
Project URLhttps://github.com/ekonbenefits/FSharp.Interop.NullOptAble |
LicenseUnknown |
Tagsfsharp option seq choose null conditional |
Info297 total downloads |
4 downloads for version 0.8.0-alpha29 |
Download (12.46 KB) |
Download legacy symbols (17.77 KB) |
Found on the current feed only |
Package history
Version | Size | Last updated | Downloads | Mirrored? | |||
---|---|---|---|---|---|---|---|
0.12.0-alpha155 | 123.91 KB | Tue, 24 Nov 2020 23:22:10 GMT | 3 | ||||
0.11.0.145 | 276.47 KB | Tue, 24 Nov 2020 19:15:31 GMT | 3 | ||||
0.11.0.144 | 276.47 KB | Tue, 24 Nov 2020 19:08:58 GMT | 4 | ||||
0.11.0.142 | 276.47 KB | Tue, 24 Nov 2020 18:57:41 GMT | 4 | ||||
0.11.0-alpha96 | 269.96 KB | Sat, 05 May 2018 23:11:33 GMT | 4 | ||||
0.11.0-alpha157 | 196.41 KB | Fri, 15 Nov 2024 21:55:59 GMT | 0 | ||||
0.11.0-alpha153 | 123.93 KB | Tue, 24 Nov 2020 23:18:49 GMT | 3 | ||||
0.11.0-alpha147 | 327.04 KB | Tue, 24 Nov 2020 19:37:54 GMT | 3 | ||||
0.11.0-alpha146 | 327.03 KB | Tue, 24 Nov 2020 19:34:31 GMT | 3 | ||||
0.11.0-alpha143 | 325.55 KB | Tue, 24 Nov 2020 19:08:03 GMT | 3 | ||||
0.11.0-alpha141 | 325.55 KB | Tue, 24 Nov 2020 18:54:45 GMT | 3 | ||||
0.11.0-alpha140 | 325.56 KB | Tue, 24 Nov 2020 18:39:59 GMT | 3 | ||||
0.11.0-alpha138 | 325.56 KB | Tue, 24 Nov 2020 18:36:51 GMT | 4 | ||||
0.11.0-alpha136 | 323.89 KB | Tue, 24 Nov 2020 17:15:42 GMT | 4 | ||||
0.11.0-alpha134 | 323.88 KB | Fri, 19 Jul 2019 21:16:31 GMT | 3 | ||||
0.10.2-alpha132 | 322.11 KB | Fri, 19 Jul 2019 18:58:28 GMT | 3 | ||||
0.10.2-alpha130 | 323.61 KB | Fri, 21 Jun 2019 21:38:27 GMT | 4 | ||||
0.10.2-alpha128 | 323.61 KB | Fri, 21 Jun 2019 21:20:18 GMT | 5 | ||||
0.10.2-alpha126 | 323.61 KB | Fri, 21 Jun 2019 21:15:45 GMT | 4 | ||||
0.10.2-alpha124 | 323.86 KB | Fri, 21 Jun 2019 20:44:53 GMT | 5 | ||||
0.10.2-alpha122 | 323.85 KB | Fri, 21 Jun 2019 20:31:14 GMT | 5 | ||||
0.10.1.117 | 263.61 KB | Thu, 21 Jun 2018 00:20:51 GMT | 4 | ||||
0.10.1.116 | 263.6 KB | Thu, 21 Jun 2018 00:18:04 GMT | 4 | ||||
0.10.1-alpha120 | 323.72 KB | Fri, 29 Mar 2019 19:40:11 GMT | 4 | ||||
0.10.1-alpha118 | 323.71 KB | Fri, 29 Mar 2019 19:38:46 GMT | 4 | ||||
0.10.1-alpha115 | 304.47 KB | Thu, 21 Jun 2018 00:15:30 GMT | 4 | ||||
0.10.1-alpha114 | 304.46 KB | Thu, 21 Jun 2018 00:13:12 GMT | 4 | ||||
0.10.0.94 | 89.21 KB | Fri, 04 May 2018 17:52:56 GMT | 4 | ||||
0.10.0.93 | 89.21 KB | Fri, 04 May 2018 17:46:49 GMT | 8 | ||||
0.10.0-alpha98 | 106.7 KB | Tue, 08 May 2018 05:11:26 GMT | 5 | ||||
0.10.0-alpha92 | 106.7 KB | Thu, 03 May 2018 19:34:58 GMT | 4 | ||||
0.10.0-alpha91 | 105.54 KB | Wed, 02 May 2018 20:31:08 GMT | 4 | ||||
0.10.0-alpha108 | 106.97 KB | Sat, 19 May 2018 15:00:00 GMT | 4 | ||||
0.10.0-alpha107 | 106.97 KB | Thu, 17 May 2018 04:02:40 GMT | 6 | ||||
0.9.1-alpha90 | 105.24 KB | Wed, 02 May 2018 03:51:37 GMT | 4 | ||||
0.9.0.89 | 87.81 KB | Sun, 29 Apr 2018 17:34:27 GMT | 3 | ||||
0.9.0.88 | 87.82 KB | Sun, 29 Apr 2018 17:31:26 GMT | 4 | ||||
0.9.0-alpha87 | 105.15 KB | Sun, 29 Apr 2018 17:28:14 GMT | 4 | ||||
0.9.0-alpha86 | 105.12 KB | Sun, 29 Apr 2018 17:21:16 GMT | 4 | ||||
0.9.0-alpha79 | 105.12 KB | Sun, 29 Apr 2018 16:50:51 GMT | 4 | ||||
0.9.0-alpha78 | 105.12 KB | Sun, 29 Apr 2018 04:35:11 GMT | 4 | ||||
0.9.0-alpha77 | 105.11 KB | Sun, 29 Apr 2018 04:29:24 GMT | 5 | ||||
0.9.0-alpha76 | 105.12 KB | Sun, 29 Apr 2018 04:23:20 GMT | 4 | ||||
0.9.0-alpha75 | 105.12 KB | Sun, 29 Apr 2018 04:21:44 GMT | 4 | ||||
0.9.0-alpha74 | 105.08 KB | Sun, 29 Apr 2018 04:14:52 GMT | 4 | ||||
0.9.0-alpha73 | 105.08 KB | Sun, 29 Apr 2018 04:11:51 GMT | 3 | ||||
0.9.0-alpha72 | 105.08 KB | Sun, 29 Apr 2018 04:08:30 GMT | 3 | ||||
0.9.0-alpha71 | 104.85 KB | Sat, 28 Apr 2018 18:08:39 GMT | 3 | ||||
0.9.0-alpha70 | 104.85 KB | Sat, 28 Apr 2018 17:46:32 GMT | 3 | ||||
0.9.0-alpha69 | 104.85 KB | Sat, 28 Apr 2018 17:35:21 GMT | 3 | ||||
0.9.0-alpha68 | 104.85 KB | Sat, 28 Apr 2018 17:34:18 GMT | 3 | ||||
0.9.0-alpha67 | 104.85 KB | Sat, 28 Apr 2018 17:32:07 GMT | 4 | ||||
0.9.0-alpha66 | 104.85 KB | Sat, 28 Apr 2018 17:23:07 GMT | 4 | ||||
0.9.0-alpha65 | 104.85 KB | Sat, 28 Apr 2018 17:15:15 GMT | 3 | ||||
0.9.0-alpha64 | 104.85 KB | Sat, 28 Apr 2018 17:13:17 GMT | 3 | ||||
0.9.0-alpha63 | 104.85 KB | Sat, 28 Apr 2018 16:57:43 GMT | 4 | ||||
0.9.0-alpha62 | 104.85 KB | Sat, 28 Apr 2018 16:52:58 GMT | 3 | ||||
0.9.0-alpha61 | 104.85 KB | Sat, 28 Apr 2018 16:24:09 GMT | 3 | ||||
0.9.0-alpha60 | 104.85 KB | Sat, 28 Apr 2018 16:21:53 GMT | 4 | ||||
0.9.0-alpha59 | 104.85 KB | Sat, 28 Apr 2018 16:18:20 GMT | 3 | ||||
0.9.0-alpha58 | 104.85 KB | Sat, 28 Apr 2018 08:05:30 GMT | 4 | ||||
0.9.0-alpha57 | 104.85 KB | Sat, 28 Apr 2018 08:00:22 GMT | 4 | ||||
0.9.0-alpha56 | 104.85 KB | Sat, 28 Apr 2018 07:49:15 GMT | 3 | ||||
0.9.0-alpha55 | 103.64 KB | Sat, 28 Apr 2018 04:21:04 GMT | 3 | ||||
0.9.0-alpha54 | 103.64 KB | Sat, 28 Apr 2018 04:20:07 GMT | 3 | ||||
0.9.0-alpha53 | 103.64 KB | Sat, 28 Apr 2018 04:18:35 GMT | 3 | ||||
0.9.0-alpha50 | 33.52 KB | Sat, 28 Apr 2018 00:04:51 GMT | 3 | ||||
0.8.0-alpha47 | 14.67 KB | Fri, 27 Apr 2018 16:43:29 GMT | 3 | ||||
0.8.0-alpha45 | 14.67 KB | Fri, 27 Apr 2018 16:08:05 GMT | 3 | ||||
0.8.0-alpha43 | 14.67 KB | Fri, 27 Apr 2018 15:34:38 GMT | 3 | ||||
0.8.0-alpha41 | 14.67 KB | Thu, 26 Apr 2018 18:21:25 GMT | 3 | ||||
0.8.0-alpha39 | 14.67 KB | Thu, 26 Apr 2018 17:58:45 GMT | 3 | ||||
0.8.0-alpha37 | 14.67 KB | Thu, 26 Apr 2018 17:54:54 GMT | 4 | ||||
0.8.0-alpha35 | 14.67 KB | Thu, 26 Apr 2018 17:50:03 GMT | 3 | ||||
0.8.0-alpha33 | 14.67 KB | Thu, 26 Apr 2018 16:58:31 GMT | 3 | ||||
0.8.0-alpha31 | 12.85 KB | Thu, 26 Apr 2018 02:12:18 GMT | 4 | ||||
0.8.0-alpha29 | 12.46 KB | Wed, 25 Apr 2018 23:09:48 GMT | 4 | ||||
0.8.0-alpha28 | 12.46 KB | Wed, 25 Apr 2018 23:05:59 GMT | 3 | ||||
0.8.0-alpha27 | 12.46 KB | Wed, 25 Apr 2018 22:58:43 GMT | 4 | ||||
0.8.0-alpha26 | 12.2 KB | Wed, 25 Apr 2018 22:36:05 GMT | 3 | ||||
0.8.0-alpha25 | 10.94 KB | Wed, 25 Apr 2018 20:53:48 GMT | 3 | ||||
0.8.0-alpha24 | 10.95 KB | Wed, 25 Apr 2018 20:50:41 GMT | 3 |