diff options
author | Alice Dee <alice.dee@guardian.co.uk> | 2019-05-11 17:16:06 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-05-11 17:22:56 +0100 |
commit | f7d6fe3105fbf650f0f0f95568aca801048f6d15 (patch) | |
tree | ed60af8c3017a5c6b820a8f7f500eff8360f1d56 /src | |
parent | 1d91cb03285269794823843e54ae3dbb43e7c4d6 (diff) | |
download | gleam_stdlib-f7d6fe3105fbf650f0f0f95568aca801048f6d15.tar.gz gleam_stdlib-f7d6fe3105fbf650f0f0f95568aca801048f6d15.zip |
Adds split to list stdlib
Diffstat (limited to 'src')
-rw-r--r-- | src/list.gleam | 15 |
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, []) +} |