Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using F# Datatypes in C#

More particularly, I really want an immutable/shared linked list, and I think having immutable maps and sets would be nice too. As long as I don't have to worry about the core implementation, I can easily add extension methods/subclass/wrap it to provide a reasonably slick external interface for myself to use.

Is there any reason I shouldn't do this? Performance, incompatibility, etc.?

like image 878
Li Haoyi Avatar asked Jan 28 '26 06:01

Li Haoyi


1 Answers

FSharpx includes a couple of "adapters" so that F# collections can be used more comfortably in C#. Here's a short example:

var a = FSharpList.Create(1, 2, 3);
var b = a.Cons(0);
b.TryFind(x => x > 4)
 .Match(v => Console.WriteLine("I found a value {0}", v),
        () => Console.WriteLine("I didn't find anything"));

There's not much documentation right now, but you can use the tests for reference. It doesn't include absolutely every operation (I don't mind directly using things like MapModule in C# too much), but if you find anything you need missing, please fork the repository and add it!

I also blogged about this a few weeks ago.

Or you can try and use one of these implementations of persistent collections in C#.

like image 133
Mauricio Scheffer Avatar answered Jan 30 '26 21:01

Mauricio Scheffer



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!