Вам разрешено использовать List.map2?Потому что тогда это просто:
let lista = [(fun x -> x + 1); (fun x -> x + 2); (fun x -> x + 3)];;
let listb = [1; 1; 1];;
let listc = List.map2 (fun a b -> (a b)) lista listb;;
Вывод будет [2;3;4]
Редактировать: подождите, я думаю, что я прочитал вашу проблему неправильно.Вы хотите получить список списков, где каждый список содержит список функций, примененных к начальному списку?Другими словами, для списков и списков, приведенных выше, вы получите:
[[2;2;2];[3;3;3];[4;4;4]]
Это правильно?