function Подставить5В(f:real->real):real;//Первый параметр тут это функция принимающая
//число типа "real" и возвращающея другое число,
//тоже типа "real"
begin
Result := f(5);//Тут мы вызываем функцию которую передали как параметр, давая ей 5 на вход
end;
function УмножитьНа2(r: real): real := r*2;//эта функция берёт число и возвращает его же, умноженое на 2
function ВозвестиВКвадрат(r: real): real := r*r;//эта функция берёт число и возвращает его же, возведённое в квадрат
begin
writeln(Подставить5В(УмножитьНа2)); //Тут мы передаём в "Подставить5В" функцию, которая умнажает входное число на 2
//При выполнении в функцию "УмножитьНа2" подставит 5, а затем выведет результат
writeln(Подставить5В(ВозвестиВКвадрат)); //Тут мы передаём в "Подставить5В" функцию, которая возводит входное число в квадрат
//При выполнении в функцию "ВозвестиВКвадрат" подставит 5, а затем выведет результат
end.
Это же можно записать так:
function Подставить5В(f:real->real):real;
begin
Result := f(5);
end;
begin
writeln(Подставить5В(r->r*2));
writeln(Подставить5В(r->r*r));
end.
То есть тут мы функции УмножитьНа2 и ВозвестиВКвадрат заменили лямбдами. Лямбды работают так же как и полные функции, но их можно описать прямо на строке где вы их используете, не создавая дополнительные имена (УмножитьНа2 и ВозвестиВКвадрат) и сильно экономя на количестве кода.
P.S. @admin перенесите всё же в помощь новичкам, пожалуйста.
Если Вы не думаете, конечно, что PascalABC.NET - это из языков “пришел - и через 5 минут спец”, то начните с простого: девяти видеолекций от разработчика.
Воот, это уже ближе к телу =). Благодарю за ссылки. Уже немного посмотрел – нравитца! Конечно я не думаю, что стану спецом в паскале за 5 минут. Может быть… за десять?
Если по тексту, мне не нравится эта позиция и она мне кажется устаревшей.
Но даже дело не в этом. Я считаю, что существуют разные модели обучения у разных преподавателей и вполне успешные. И надо давать право на их существование даже если ты не согласен. Личность преподавателя там порой перевешивает все минусы. Несомненно, существует много неуспешных моделей.
Что касается меня, то я примерно с 2000 года не могу принимать Паскаль в облике Free pascal. Собственно, моё мнение о том, что он устарел уже тогда трансформировалось в создание нашей системы.
Наши студенты в 1 семестре сейчас активно работают с последовательностями, оператором yield, лямбдами, захватом переменных. Как это сделать на С и уж тем более на FP - ума не приложу
Разработчик говорит, что Print - основной вызов. Неужели я обязательно должен домогаться во всем от разработчиков объяснений? Сказали - значит, так надо.