Meine regelbasierte Prozedur macht genau das gleiche bis auf den nil Fall:

fun take n xs = if n <= 0 then nil else (hd xs):take (n-1) (tl xs))
val a = take 5 nil
Uncaught exception
Empty
Deswegen wäre es gut, wenn du den nil Fall mit in betracht ziehst.

PS: Schade dass es kein Feedback vom Threadersteller gab zu meinem doch sehr ausführlichen Post gab.
Hatte mir eingeltich viel Mühe gegeben.