Функциональное программирование




Логические функции. Управляющие структуры - часть 5


br>

4.5 PROGN, PROG1, PROG2.

          Функции PROGN, PROG1, PROG2 относятся к управляющим структурам, к группе объединяющей последовательные вычисления.


Предложения PROGN, PROG1, PROG2 позволяют работать с несколькими вычисляемыми формами:

( PROGN < форма-1 > < форма-2 > ...... < форма-n >)

( PROG1 < форма-1 > < форма-2 > ...... < форма-n >)

( PROG2 < форма-1 > < форма-2 > ...... < форма-n >)

У этих предложений переменное число аргументов, которые они последовательно вычисляют:


        Пример:

          * ( progn ( setq x 2 ) ( setq y ( * 3 2 ) ) )

          6

          * ( prog1 ( setq x 2 ) ( setq y ( * 3 2 ) ) )

          2

          * y

          6

В Лиспе часто используется так называемый неявный PROGN , т.е вычисляется последовательность форм, а в качестве значения берется значение последней формы.

4.5.1 Определение функций с использованием неявного PROGN.

При определении функций может использоваться неявный PROGN .

( defun
< имя функции >
< список параметров >
< форма1 форма2 .... формаN > )



  • Тело функции состоит из последовательности форм отражающих,
    последовательность действий.

  • В качестве значения функции принимается значение последней формы.

Пример:

Определим функцию, которая печатает список, вводит два числа, и печатает их сумму.

    ( defun print-sum ( ) ; функция без аргументов

    ( print ' ( type two number ) )

    ( print ( + ( read ) ( read ) ) ) )

    *( print-sum )

    ( type two number ) 3 4

    7

    7





Содержание  Назад  Вперед