ein wenig zu spät, um das Spiel, aber hier ist meine Umsetzung:
let rec range ?(start=0) len =
if start >= len
then []
else start :: (range len ~start:(start+1))
Sie können es dann sehr ähnlich wie die Python-Funktion verwenden:
range 10
(* equals: [0; 1; 2; 3; 4; 5; 6; 7; 8; 9] *)
range ~start:(-3) 3
(* equals: [-3; -2; -1; 0; 1; 2] *)
natürlich denke ich die beste Antwort Core einfach zu verwenden, aber das wäre vielleicht besser, wenn Sie nur eine Funktion benötigen, und Sie versuchen, den vollständigen Rahmen zu vermeiden.
Die Haskell-Syntax wäre: '[1..n]'. – yfeldblum