Micro Lisp. Основные понятия, структуры и функции. Яшин Л.З. - 19 стр.

UptoLike

Составители: 

19
ВЫЧИСЛЕНИЕ В ЛИСПЕ. ОРГАНИЗАЦИЯ УСЛОВНЫХ И
ЦИКЛИЧЕСКИХ ВЫЧИСЛЕНИЙ
Разветвление вычислений. Условное предложение COND
Предложение COND является основным средством разветвления вычислений.
Это синтаксическая форма, позволяющая управлять вычислениями на основе
определяемых предикатами условий. Структура условного предложения такова:
(COND (pl а1) (p2 a2) ... (pN аМ))
Предикатами рi и результирующими выражениями ai могут быть произвольные
формы. Значение предложения COND определяется следующим образом:
1. Выражение pi, выполняющие роль предикатов, вычисляются последовательно
слева направо (сверху вниз) до тех пор, пока не встретится выражение, значением
которого не является NIL, т.е. логическим значением которого является истина.
2. Вычисляется результирующее выражение, соответствующее этому предикату, и
полученное значение возвращение в качестве значения всего предложения COND.
3. Если истинного предиката нет, то значением COND будет NIL.
Рекомендуется в качестве последнего предиката использовать символ Т, и
соответствующее ему результирующее выражение будет вычисляться всегда в тех
случаях, когда ни одно другое условие не выполняется.
В следующем примере с помощью предложения COND определена функция,
устанавливающая тип выражения:
[1] (define (тип l) (cond ((null? l) 'пусто)((atom? l) 'атом) (t 'список)))
ТИП
[2] (тип '(a b c))
СПИСОК
[3] (тип '())
ПУСТО
[4] (тип 'c)
АТОМ
В качестве примера использования условного предложения определим
логические действия логики высказываний «и», «или», «не»:
[5] (define (и х у) (cond (х у) (t nil)))
И
[6] (и t nil)
()
[7] (define (или х у) (cond (х t) (t y)))
ИЛИ
[8] (или t nil)
#T
[9] (или t t)
#T
[10] (define (не х) (not х))
НЕ
                                          19

            ВЫЧИСЛЕНИЕ В ЛИСПЕ. ОРГАНИЗАЦИЯ УСЛОВНЫХ И
                   ЦИКЛИЧЕСКИХ ВЫЧИСЛЕНИЙ
Разветвление вычислений. Условное предложение COND
      Предложение COND является основным средством разветвления вычислений.
Это синтаксическая форма, позволяющая управлять вычислениями на основе
определяемых предикатами условий. Структура условного предложения такова:
     (COND (pl а1) (p2 a2) ... (pN аМ))
     Предикатами рi и результирующими выражениями ai могут быть произвольные
формы. Значение предложения COND определяется следующим образом:
1. Выражение pi, выполняющие роль предикатов, вычисляются последовательно
   слева направо (сверху вниз) до тех пор, пока не встретится выражение, значением
   которого не является NIL, т.е. логическим значением которого является истина.
2. Вычисляется результирующее выражение, соответствующее этому предикату, и
   полученное значение возвращение в качестве значения всего предложения COND.
3. Если истинного предиката нет, то значением COND будет NIL.
      Рекомендуется в качестве последнего предиката использовать символ Т, и
соответствующее ему результирующее выражение будет вычисляться всегда в тех
случаях, когда ни одно другое условие не выполняется.
      В следующем примере с помощью предложения COND определена функция,
устанавливающая тип выражения:
        [1] (define (тип l) (cond ((null? l) 'пусто)((atom? l) 'атом) (t 'список)))
        ТИП
        [2] (тип '(a b c))
        СПИСОК
        [3] (тип '())
        ПУСТО
        [4] (тип 'c)
        АТОМ
      В качестве примера использования условного предложения определим
логические действия логики высказываний «и», «или», «не»:
       [5] (define (и х у) (cond (х у) (t nil)))
       И
       [6] (и t nil)
       ()
       [7] (define (или х у) (cond (х t) (t y)))
       ИЛИ
       [8] (или t nil)
       #T
       [9] (или t t)
       #T
       [10] (define (не х) (not х))
       НЕ