Scheme/Tutorial/5
Материал из ALT Linux Wiki
(Различия между версиями)
Строка 1: | Строка 1: | ||
- | |||
- | |||
=== 11 Локальные переменные === | === 11 Локальные переменные === | ||
Проведём небольшое усовершенствование своих познаний по Scheme. | Проведём небольшое усовершенствование своих познаний по Scheme. | ||
Строка 35: | Строка 33: | ||
(f 5) ; будет напечатано 5, а не 4 ибо x - локальная переменная в функции f.</pre> | (f 5) ; будет напечатано 5, а не 4 ибо x - локальная переменная в функции f.</pre> | ||
- | |||
- |
Версия 14:58, 31 июля 2008
11 Локальные переменные
Проведём небольшое усовершенствование своих познаний по Scheme.
В Scheme применяется привычный всем подход к областям видимости переменных (так называемый Lexical Scope):
* Переменные определённые внутри некоторой функции видны во всех функциях, определённых внутри данной, но не видны вне её.
(define a 3) (define (f) (define b 4) (define (g) (write b)) ; мы видим эту переменную так как g сама определена внутри f (g) (write a) ; мы видим эту переменную ибо она в охватывающем окружении (write b)) ; это наша локальная переменная (write b) ; ошибка b - определена внутри f и не видна на вышестоящем уровне.
* Локальные переменные затеняют глобальные:
(define a 3) (define (f) (define a 4) (write a)) (f) ; будет напечатано 4, а не 3, так как локальная переменная затенила глобальную.
- параметры у многоаргументных функций, суть локальные переменные со всеми вытекающими последствиями:
(define x 4) (define (f x) (write x)) (f 5) ; будет напечатано 5, а не 4 ибо x - локальная переменная в функции f.