ВУЗ:
Составители:
Рубрика:
28
аргумент к его параметрам. Такие функционалы называют применяющими или
аппликативными функционалами (APPLY и FUNCALL).
Применяющие функционалы родственны универсальной функции Лиспа
EVAL. В то время как EVAL вычисляет значение произвольного выражения (формы),
применяющий функционал вычисляет значение вызова некоторой функции.
Интерпретатор Лиспа EVAL и на самом деле вызывает применяющий функционал
APPLY при вычислении вызова, а APPLY в свою очередь вызывает EVAL при
вычислении значения других форм.
Применяющие функционалы дают возможность интерпретировать и
преобразовывать данные в программу и применять ее в вычислениях. Ниже
рассмотрим применяющий функционал интерпретатора Лиспа APPLY.
Применяющий функционал APPLY
APPLY применяет функцию, переданную как параметр, к списку аргументов:
(APPLY function x1 x2 x3 … xN) Ù (function ‘x1 ‘x2 ‘x3 … ‘xN) , где список=(х1 х2 ...
хN)
APPLY является (в своей исходной форме) функцией двух аргументов, из
которых первый аргумент представляет собой функцию, которая применяется к
элементам списка, составляющим второй аргумент функции APPLY:
[1] (apply + '(4 7))
11
[2] (apply cons '(что (пожелаете)))
(ЧТО ПОЖЕЛАЕТЕ)
[3] (define f)
F
[4] (set! f '+)
+
[5] (аррlу f '(900 77))
977
Использование APPLY дает большую гибкость по сравнению с прямым
вызовом функции: с помощью одной и той же функции APPLY можно в зависимости
от
функционального аргумента осуществлять различные вычисления.
[15] (apply (lambda (х у) (+ х у)) '(6 5))
11
[16] (define s)
S
[17] (set! s '(5 7))
(5 7)
[18] (apply cdr (list s))
(7)
[19] (apply (lambda (n) (* n n)) (cdr s))
49
[20] (apply (lambda (n) (* n n)) (car s))
25
28 аргумент к его параметрам. Такие функционалы называют применяющими или аппликативными функционалами (APPLY и FUNCALL). Применяющие функционалы родственны универсальной функции Лиспа EVAL. В то время как EVAL вычисляет значение произвольного выражения (формы), применяющий функционал вычисляет значение вызова некоторой функции. Интерпретатор Лиспа EVAL и на самом деле вызывает применяющий функционал APPLY при вычислении вызова, а APPLY в свою очередь вызывает EVAL при вычислении значения других форм. Применяющие функционалы дают возможность интерпретировать и преобразовывать данные в программу и применять ее в вычислениях. Ниже рассмотрим применяющий функционал интерпретатора Лиспа APPLY. Применяющий функционал APPLY APPLY применяет функцию, переданную как параметр, к списку аргументов: (APPLY function x1 x2 x3 … xN) Ù (function ‘x1 ‘x2 ‘x3 … ‘xN) , где список=(х1 х2 ... хN) APPLY является (в своей исходной форме) функцией двух аргументов, из которых первый аргумент представляет собой функцию, которая применяется к элементам списка, составляющим второй аргумент функции APPLY: [1] (apply + '(4 7)) 11 [2] (apply cons '(что (пожелаете))) (ЧТО ПОЖЕЛАЕТЕ) [3] (define f) F [4] (set! f '+) + [5] (аррlу f '(900 77)) 977 Использование APPLY дает большую гибкость по сравнению с прямым вызовом функции: с помощью одной и той же функции APPLY можно в зависимости от функционального аргумента осуществлять различные вычисления. [15] (apply (lambda (х у) (+ х у)) '(6 5)) 11 [16] (define s) S [17] (set! s '(5 7)) (5 7) [18] (apply cdr (list s)) (7) [19] (apply (lambda (n) (* n n)) (cdr s)) 49 [20] (apply (lambda (n) (* n n)) (car s)) 25
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »