метод Пример(Делимое: Число, Делитель: Число)
пер Результат = СравнитьДваЧисла(Делимое, Делитель, (Число1, Число2) -> Число1%Число2 == 0)
;
метод СравнитьДваЧисла(Делимое: Число, Делитель: Число, Разделить: (Число, Число)->Булево): Булево
возврат Разделить(Делимое, Делитель)
;
Здесь в вызове метода СравнитьДваЧисла() написано лямбда-выражение:
(Число1, Число2) -> Число1%Число2 > 0
Оно означает, что передается метод с двумя параметрами. Этот метод определяет остаток от деления первого числа на второе и сравнивает его с нулем.
В объявлении метода СравнитьДваЧисла() указано, что его третий параметр имеет функциональный тип:
Разделить: (Число, Число)->Булево
Имя этого параметра – Разделить, в него будет передан метод, который принимает два параметра типа Число и возвращает значение типа Булево.
В теле метода СравнитьДваЧисла() написан вызов значения функционального типа:
Разделить(Делимое, Делитель)
Это вызывается метод, переданный в третьем параметре Разделить. Ему передаются два числа, которые пришли в метод в первом и втором параметрах.