2011-12-15 7 views

Odpowiedz

2

Możesz sprawdzić ClojureCLR implementation. Jest to implementacja języka Clojure na silniku wykonawczym CLR/DLR. Chyba nie można po prostu skopiować & wkleić kod do projektu, ale przy niewielkiej pracy można wyodrębnić określone trwałe struktury danych. Zajrzyj do Clojure \ Clojure \ Lib do implementacji takiej jak PersistentVector.cs

Ido.

+0

To wygląda całkiem interesujące, dzięki. – Aled

1

Istnieje implementacja .NET (callable z biblioteki C#) wektorów trwałych w pakiecie FSharpX.Collections, a także available na NuGet.

Oto przykład użycia od przedniej stronie projektu:

// Create an empty PersistentVector and add some elements 
PersistentVector<string> vector = 
    PersistentVector<string>.Empty() 
     .Conj("hello") 
     .Conj("world") 
     .Conj("!"); 

PersistentVector<string> vector2 = vector.Conj("!!!").Update(0,"hi"); 

Console.WriteLine(vector2[0]); // hi 
Console.WriteLine(vector[0]); // hello 
Console.WriteLine(vector2[3]); // !!! 

Console.WriteLine(vector.Length); // 3 
Console.WriteLine(vector2.Length); // 4 

// remove the last element from a PersistentVector 
PersistentVector<string> vector3 = vector2.Initial; 

Console.WriteLine(vector3.Length); // 3 
Powiązane problemy