aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlice Dee <alice.dee@guardian.co.uk>2019-05-11 17:16:06 +0100
committerLouis Pilfold <louis@lpil.uk>2019-05-11 17:22:56 +0100
commitf7d6fe3105fbf650f0f0f95568aca801048f6d15 (patch)
treeed60af8c3017a5c6b820a8f7f500eff8360f1d56 /src
parent1d91cb03285269794823843e54ae3dbb43e7c4d6 (diff)
downloadgleam_stdlib-f7d6fe3105fbf650f0f0f95568aca801048f6d15.tar.gz
gleam_stdlib-f7d6fe3105fbf650f0f0f95568aca801048f6d15.zip
Adds split to list stdlib
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, [])
+}