ci-fsharp-optionbuilder - FSharp.Interop.NullOptAble 0.10.1.116

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

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

Copy to clipboard

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

Copy to clipboard

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

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

nuget FSharp.Interop.NullOptAble  ~> 0.10.1.116
Copy to clipboard

> choco install FSharp.Interop.NullOptAble --version 0.10.1.116 --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.10.1.116" -Repository "ci-fsharp-optionbuilder" 
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.

  • .NETFramework 4.5
    • FSharp.Core (>= 4.2.3)
  • .NETStandard 1.6
    • FSharp.Core (>= 4.2.3)
    • NETStandard.Library (>= 1.6.1)
  • .NETStandard 2.0
    • FSharp.Core (>= 4.2.3)
  • .NETFramework 4.5: 4.5.0.0
  • .NETStandard 1.6: 1.6.0.0
  • .NETStandard 2.0: 2.0.0.0

                        
Assembly Assembly hash Match
/lib/net45/fsharp.interop.nulloptable.dll 032c0708ad3a457c964b95215c81772dFFFFFFFF
/lib/netstandard1.6/fsharp.interop.nulloptable.dll 231a8444f7894f1cad11b09cc69b8df8FFFFFFFF
/lib/netstandard2.0/fsharp.interop.nulloptable.dll b4ff1064ab7e4700b3c05e815ba53f54FFFFFFFF

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

5885 total downloads
71 downloads for version 0.10.1.116
Download (263.6 KB)
Download legacy symbols (297.3 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 70
0.11.0.145 276.47 KB Tue, 24 Nov 2020 19:15:31 GMT 75
0.11.0.144 276.47 KB Tue, 24 Nov 2020 19:08:58 GMT 68
0.11.0.142 276.47 KB Tue, 24 Nov 2020 18:57:41 GMT 76
0.11.0-alpha96 269.96 KB Sat, 05 May 2018 23:11:33 GMT 72
0.11.0-alpha157 196.41 KB Fri, 15 Nov 2024 21:55:59 GMT 63
0.11.0-alpha153 123.93 KB Tue, 24 Nov 2020 23:18:49 GMT 69
0.11.0-alpha147 327.04 KB Tue, 24 Nov 2020 19:37:54 GMT 83
0.11.0-alpha146 327.03 KB Tue, 24 Nov 2020 19:34:31 GMT 78
0.11.0-alpha143 325.55 KB Tue, 24 Nov 2020 19:08:03 GMT 68
0.11.0-alpha141 325.55 KB Tue, 24 Nov 2020 18:54:45 GMT 78
0.11.0-alpha140 325.56 KB Tue, 24 Nov 2020 18:39:59 GMT 85
0.11.0-alpha138 325.56 KB Tue, 24 Nov 2020 18:36:51 GMT 68
0.11.0-alpha136 323.89 KB Tue, 24 Nov 2020 17:15:42 GMT 80
0.11.0-alpha134 323.88 KB Fri, 19 Jul 2019 21:16:31 GMT 63
0.10.2-alpha132 322.11 KB Fri, 19 Jul 2019 18:58:28 GMT 72
0.10.2-alpha130 323.61 KB Fri, 21 Jun 2019 21:38:27 GMT 73
0.10.2-alpha128 323.61 KB Fri, 21 Jun 2019 21:20:18 GMT 83
0.10.2-alpha126 323.61 KB Fri, 21 Jun 2019 21:15:45 GMT 71
0.10.2-alpha124 323.86 KB Fri, 21 Jun 2019 20:44:53 GMT 78
0.10.2-alpha122 323.85 KB Fri, 21 Jun 2019 20:31:14 GMT 69
0.10.1.117 263.61 KB Thu, 21 Jun 2018 00:20:51 GMT 78
0.10.1.116 263.6 KB Thu, 21 Jun 2018 00:18:04 GMT 71
0.10.1-alpha120 323.72 KB Fri, 29 Mar 2019 19:40:11 GMT 74
0.10.1-alpha118 323.71 KB Fri, 29 Mar 2019 19:38:46 GMT 68
0.10.1-alpha115 304.47 KB Thu, 21 Jun 2018 00:15:30 GMT 66
0.10.1-alpha114 304.46 KB Thu, 21 Jun 2018 00:13:12 GMT 71
0.10.0.94 89.21 KB Fri, 04 May 2018 17:52:56 GMT 67
0.10.0.93 89.21 KB Fri, 04 May 2018 17:46:49 GMT 74
0.10.0-alpha98 106.7 KB Tue, 08 May 2018 05:11:26 GMT 78
0.10.0-alpha92 106.7 KB Thu, 03 May 2018 19:34:58 GMT 77
0.10.0-alpha91 105.54 KB Wed, 02 May 2018 20:31:08 GMT 71
0.10.0-alpha108 106.97 KB Sat, 19 May 2018 15:00:00 GMT 71
0.10.0-alpha107 106.97 KB Thu, 17 May 2018 04:02:40 GMT 66
0.9.1-alpha90 105.24 KB Wed, 02 May 2018 03:51:37 GMT 69
0.9.0.89 87.81 KB Sun, 29 Apr 2018 17:34:27 GMT 62
0.9.0.88 87.82 KB Sun, 29 Apr 2018 17:31:26 GMT 80
0.9.0-alpha87 105.15 KB Sun, 29 Apr 2018 17:28:14 GMT 58
0.9.0-alpha86 105.12 KB Sun, 29 Apr 2018 17:21:16 GMT 70
0.9.0-alpha79 105.12 KB Sun, 29 Apr 2018 16:50:51 GMT 63
0.9.0-alpha78 105.12 KB Sun, 29 Apr 2018 04:35:11 GMT 70
0.9.0-alpha77 105.11 KB Sun, 29 Apr 2018 04:29:24 GMT 75
0.9.0-alpha76 105.12 KB Sun, 29 Apr 2018 04:23:20 GMT 76
0.9.0-alpha75 105.12 KB Sun, 29 Apr 2018 04:21:44 GMT 63
0.9.0-alpha74 105.08 KB Sun, 29 Apr 2018 04:14:52 GMT 79
0.9.0-alpha73 105.08 KB Sun, 29 Apr 2018 04:11:51 GMT 71
0.9.0-alpha72 105.08 KB Sun, 29 Apr 2018 04:08:30 GMT 75
0.9.0-alpha71 104.85 KB Sat, 28 Apr 2018 18:08:39 GMT 71
0.9.0-alpha70 104.85 KB Sat, 28 Apr 2018 17:46:32 GMT 71
0.9.0-alpha69 104.85 KB Sat, 28 Apr 2018 17:35:21 GMT 72
0.9.0-alpha68 104.85 KB Sat, 28 Apr 2018 17:34:18 GMT 67
0.9.0-alpha67 104.85 KB Sat, 28 Apr 2018 17:32:07 GMT 83
0.9.0-alpha66 104.85 KB Sat, 28 Apr 2018 17:23:07 GMT 76
0.9.0-alpha65 104.85 KB Sat, 28 Apr 2018 17:15:15 GMT 82
0.9.0-alpha64 104.85 KB Sat, 28 Apr 2018 17:13:17 GMT 80
0.9.0-alpha63 104.85 KB Sat, 28 Apr 2018 16:57:43 GMT 71
0.9.0-alpha62 104.85 KB Sat, 28 Apr 2018 16:52:58 GMT 67
0.9.0-alpha61 104.85 KB Sat, 28 Apr 2018 16:24:09 GMT 63
0.9.0-alpha60 104.85 KB Sat, 28 Apr 2018 16:21:53 GMT 65
0.9.0-alpha59 104.85 KB Sat, 28 Apr 2018 16:18:20 GMT 64
0.9.0-alpha58 104.85 KB Sat, 28 Apr 2018 08:05:30 GMT 71
0.9.0-alpha57 104.85 KB Sat, 28 Apr 2018 08:00:22 GMT 70
0.9.0-alpha56 104.85 KB Sat, 28 Apr 2018 07:49:15 GMT 80
0.9.0-alpha55 103.64 KB Sat, 28 Apr 2018 04:21:04 GMT 76
0.9.0-alpha54 103.64 KB Sat, 28 Apr 2018 04:20:07 GMT 69
0.9.0-alpha53 103.64 KB Sat, 28 Apr 2018 04:18:35 GMT 67
0.9.0-alpha50 33.52 KB Sat, 28 Apr 2018 00:04:51 GMT 66
0.8.0-alpha47 14.67 KB Fri, 27 Apr 2018 16:43:29 GMT 69
0.8.0-alpha45 14.67 KB Fri, 27 Apr 2018 16:08:05 GMT 67
0.8.0-alpha43 14.67 KB Fri, 27 Apr 2018 15:34:38 GMT 68
0.8.0-alpha41 14.67 KB Thu, 26 Apr 2018 18:21:25 GMT 77
0.8.0-alpha39 14.67 KB Thu, 26 Apr 2018 17:58:45 GMT 80
0.8.0-alpha37 14.67 KB Thu, 26 Apr 2018 17:54:54 GMT 83
0.8.0-alpha35 14.67 KB Thu, 26 Apr 2018 17:50:03 GMT 64
0.8.0-alpha33 14.67 KB Thu, 26 Apr 2018 16:58:31 GMT 74
0.8.0-alpha31 12.85 KB Thu, 26 Apr 2018 02:12:18 GMT 78
0.8.0-alpha29 12.46 KB Wed, 25 Apr 2018 23:09:48 GMT 67
0.8.0-alpha28 12.46 KB Wed, 25 Apr 2018 23:05:59 GMT 74
0.8.0-alpha27 12.46 KB Wed, 25 Apr 2018 22:58:43 GMT 79
0.8.0-alpha26 12.2 KB Wed, 25 Apr 2018 22:36:05 GMT 55
0.8.0-alpha25 10.94 KB Wed, 25 Apr 2018 20:53:48 GMT 64
0.8.0-alpha24 10.95 KB Wed, 25 Apr 2018 20:50:41 GMT 70