Hallo!
Zuerst eine Bemerkung: Ich versuche nicht, eine besonders sinnvolle oder performante Implementation des Quicksort zu finden, sondern möchte etwas ähnliches wie bei dem 
Haskell-Beispiel haben.
Nun zum Problem. Als normale Methode klappt das:
		                     
             Delphi-Prism-Quelltext
                        Delphi-Prism-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 
 | class method ConsoleApp.Sort(xs : List<Integer>) : List<Integer>;begin
 if xs.Count = 0 then exit new List<Integer>;
 result := Sort(xs.Where(y -> y < xs[0]).ToList).Concat([xs[0]]).Concat(Sort(xs.Where(y -> y > xs[0]).ToList)).ToList;
 end;
 | 
		
	  
Möchte ich das auch noch als Lambda-Ausdruck machen, geht's nicht mehr:
		                     
             Delphi-Prism-Quelltext
                        Delphi-Prism-Quelltext                    
           	 										| 1:2:
 
 |   var sort : Func<List<Int32>, List<Int32>> := xs -> iif(xs.Count = 0, new List<Int32>, sort(xs.Where(y -> y < xs[0]).ToList).Concat([xs[0]]).Concat(sort(xs.Where(y -> y > xs[0]).ToList)).ToList);
 | 
		
	  
Da erhalte ich dann eine NRE, die ich mir nicht erklären kann. 

 Die bezieht sich dann auf das 
y < xs[0].
Wo mache ich da den Fehler?
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".