aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/list.gleam15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/list.gleam b/src/list.gleam
index 352fc77..40c097e 100644
--- a/src/list.gleam
+++ b/src/list.gleam
@@ -274,3 +274,18 @@ fn do_repeat(a, times, acc) {
pub fn repeat(a, times) {
do_repeat(a, times, [])
}
+
+fn do_split(list, n, taken) {
+ case n <= 0 {
+ | True -> {reverse(taken), list}
+ | False ->
+ case list {
+ | [] -> {reverse(taken), []}
+ | [x | xs] -> do_split(xs, n - 1, [x | taken])
+ }
+ }
+}
+
+pub fn split(list, n) {
+ do_split(list, n, [])
+}