ci-fsharp-optionbuilder - FSharp.Interop.NullOptAble 0.11.0-alpha96

option & chooseSeq computational expressions that work with Null/Option/Nullable

PM> Install-Package FSharp.Interop.NullOptAble -Version 0.11.0-alpha96 -Source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json

Copy to clipboard

> nuget.exe install FSharp.Interop.NullOptAble -Version 0.11.0-alpha96 -Source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json

Copy to clipboard

> dotnet add package FSharp.Interop.NullOptAble --version 0.11.0-alpha96 --source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json

Copy to clipboard
<PackageReference Include="FSharp.Interop.NullOptAble" Version="0.11.0-alpha96" />
Copy to clipboard
source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v3/index.json

nuget FSharp.Interop.NullOptAble  ~> 0.11.0-alpha96
Copy to clipboard

> choco install FSharp.Interop.NullOptAble --version 0.11.0-alpha96 --source https://www.myget.org/F/ci-fsharp-optionbuilder/api/v2

Copy to clipboard
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.11.0-alpha96" -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 NuGet Status

Missing OptionBuilder for F# filling the void to interop with C#'s ?. usage. It works with Nulls, Options, Nullables.

CI Builds available: MyGet Pre Release

Build Statuses:

  • Windows: Build status
  • Mac & Linux: Build Status

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
    • FSharp.Core (>= 4.2.3)
    • NETStandard.Library (>= 1.6.1)
  • .NETStandard 1.6: 1.6.0.0

                        
Assembly Assembly hash Match
/lib/netstandard1.6/fsharp.interop.nulloptable.dll f1141293f41345958f3cb236711fa589FFFFFFFF

Owners

Jay Tuley

Authors

Jay Tuley

Project URL

https://github.com/ekonbenefits/FSharp.Interop.NullOptAble

License

MIT

Tags

fsharp option seq null nullable monads

Info

297 total downloads
4 downloads for version 0.11.0-alpha96
Download (269.96 KB)
Download legacy symbols (315.79 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