Целью модуля, описанного ниже, является реализация модуля, который после инициализации целым n выполняет все операции, основанные на значении n.Проблема реализации фанктора
module ReturnSetZero =
functor (Elt : int) ->
struct
let rec sublist b e l =
match l with
[] -> failwith "sublist"
| h :: t ->
let tail = if e = 0 then [] else sublist (b - 1) (e - 1) t in
if b > 0 then tail else h :: tail
let rec zerol = 0:: zerol
let zeron = sublist 0 n zerol
(*other operations based on n which is selected once when the module is initialized*)
end;;
Ошибка: Освобожденный модуль типа INT
Что такое проблема здесь? Существует ли более эффективная/интуитивная альтернативная реализация?