У меня есть библиотека, которая реализует набор (интерфейс с документацией, доступной здесь: http://pastebin.com/j9QUyN1G). Я понимаю, все, кроме от этого фрагмента:Использовать Set.Make.iter для преобразования элементов набора?
val iter : ('a -> unit) -> 'a t -> unit
(** [iter f s] applies [f] to all elements in set [s]. The elements
are passed to [f] in increasing order with respect to the ordering
used to create the set. *)
Так iter
принимает функцию в качестве одного из заданы параметры и применяет его ко всем элементам набора. Поэтому я ожидал бы что-то вроде ('a -> 'a)
, которое берет элемент набора и изменяет его на элемент того же типа с другим значением или ('a -> 'b)
, который принимает 'a t
и преобразует его в 'b t
. А вместо этого iter
выполняет функцию типа ('a -> unit)
, а также возвращает unit
, а не 'a t
, а не 'b t
.
Итак, как должна выглядеть функция примера, обращенная к iter
?