При статическом разрешении результатом выражения,
При статическом разрешении результатом выражения, приведенного на рис. 1, будет 2, а при динамическом разрешении - 11. По сравнению со статическим разрешением, использование динамического связывания позволяет выражать многие сложные вычисления в более компактной форме, но потенциально приводит к большему числу ошибок и усложняет отладку программы []. В связи с этим в языке Scheme поддерживается статическое разрешение ссылок на переменные. Вызов функции записывается в виде заключенного в круглые скобки выражения, возвращающего функцию, и аргументов этой функции: (<выражение-функция> <аргумент1> ...)
Функции, которые принимают другие функции в качестве аргумента, называются функциями высокого порядка. Например, встроенная в Scheme функция map, принимает два аргумента: первый аргумент - функция с одним параметром, второй аргумент - список. Функции map возвращает вновь построенный список, полученный путем применения к каждому элементу исходного списка функции, переданной в качестве первого аргумента. В следующем примере параметрами вызова функции map является безымянная функция, умножающая свой аргумент на два, и список целых чисел. В результате вычисления получаем список соответствующих чисел, умноженных на два:
(map (lambda (x) (* x 2)) '(1 2 3 4 5)) => (2 4 6 8 10)
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий