summaryrefslogtreecommitdiff
path: root/h17.hs
diff options
context:
space:
mode:
Diffstat (limited to 'h17.hs')
-rw-r--r--h17.hs10
1 files changed, 10 insertions, 0 deletions
diff --git a/h17.hs b/h17.hs
new file mode 100644
index 0000000..fa26f35
--- /dev/null
+++ b/h17.hs
@@ -0,0 +1,10 @@
+split :: [a] -> Int -> ([a],[a])
+split xs c = splitHelper [] xs c
+ where
+ splitHelper pre nxt 0 = (reverse pre, nxt)
+ splitHelper pre (x:nxt) c = splitHelper (x:pre) nxt (c-1)
+
+split' (x:xs) c | c>0 =
+ let (pre,nxt) = split' xs (c-1)
+ in (x:pre,nxt)
+split' xs _ = ([],xs)