From f7d6fe3105fbf650f0f0f95568aca801048f6d15 Mon Sep 17 00:00:00 2001 From: Alice Dee Date: Sat, 11 May 2019 17:16:06 +0100 Subject: Adds split to list stdlib --- src/list.gleam | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') 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, []) +} -- cgit v1.2.3