чисел
Нужно получить список чисел = сумме чисел оригинального списка но не больше лимита.
Т.е.
[1, 5, 8, 5, 4, 3, 3] => [6, 8, 9, 6] (при лимите = 10). Это как-то fold/reduce надо прикрутить?
вроде как-то так let rec trickyFold (list: int List) max acc = match list with | head::tail -> match acc with | [] -> trickyFold tail max [head] | accHead::accTail -> match accHead+head > max with | true -> let newAcc = head::acc trickyFold tail max newAcc | false -> let newAccHead = head+accHead let newAcc = newAccHead::accTail trickyFold tail max newAcc | [] -> acc let a = [|1; 2; 5; 5; 7; 8; 2; 4; 5|] |> List.ofArray let f = trickyFold a 10 List.empty
Обсуждают сегодня