编写一个函数将一个列表分成两个列表。第一部分的长度由调用者指定。
我是 Elm 的新手,所以我不确定我的推理是否正确。我认为我需要转换数组中的输入列表,以便我能够按提供的输入数字对其进行切片。我也在语法上有点挣扎。到目前为止,这是我的代码:
listSplit: List a -> Int -> List(List a)
listSplit inputList nr =
let myArray = Array.fromList inputList
in Array.slice 0 nr myArray
Run Code Online (Sandbox Code Playgroud)
所以我想返回一个包含 2 个列表(指定长度的第一个)的列表,但我被困在语法中。我怎样才能解决这个问题?
替代实现:
split : Int -> List a -> (List a, List a)
split i xs =
(List.take i xs, List.drop i xs)
Run Code Online (Sandbox Code Playgroud)