Введение в язык Scheme для школьников: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 202:
Самое время вспомнить, что в ''Scheme'' можно передавать функцию в качестве параметра. Усовершенствуем функцию repeat так, чтобы мы смогли повторять произвольные действия заданное количество раз. Пусть новая версия принимает два параметра: первый — количество повторов, второй — функция, которую надо запустить.
 
<codesource lang=scheme>(define (repeat number function)
(if (> number 0)
(begin (function)
(repeat (- number 1) function))))</codesource>
 
Теперь повторять можно разные действия:
<codesource lang=scheme>(define (print-one) (display "1"))
(define (print-hello) (display "hello"))
(repeat 3 print-one) ; три раза выведет на экран "1"
(repeat 5 print-hello) ; пять раз выведет на экран "hello"</codesource>
 
==Принцип наименьших усилий==