Я вернулся к кодированию в OCaml, и я так сильно его пропустил. Я пропустил это так, что полностью потерял рассуждения на этом языке, и сегодня я ударил по стене.OCaml: Сочетание элементов в списках, функциональные рассуждения
Что я хочу сделать, это сочетание элементов между набором из n списков. Я разложил проблему, сначала попытавшись объединить элементы между двумя списками произвольных размеров.
Предположим, у нас есть списки: l1 = [1;2;3]
и l2 = [10,20]
.
То, что я хочу сделать, это получить следующий список:
l_res = [10;20;20;40;30;60]
Я знаю, как это сделать, используя структуры цикла, но я действительно хочу, чтобы решить эту проблему без них.
Я попытался следующие:
let f l1 l2 =
List.map (fun y -> (List.map (fun x -> x * y) l1) l2
Но это не похоже на работу. Тип, который я получаю, - f : int list -> int list -> int list list
, но я хочу f : int list -> int list -> int list
Я пробовал уже много разных подходов, я чувствую, что я усложняю.
Что я пропустил?
Вы совершенно правы. Я делал что-то действительно не так, и я не попадал туда с ручкой и бумагой. Спасибо за понимание! –
Добро пожаловать. Я взял на себя смелость, чтобы отредактировать сообщение, чтобы сделать его более ясным. ;-) Добро пожаловать в OCaml! – Lhooq