Информатика -продвинутый курс



ФУНКЦИИ - часть 2


(defun sumsquare (х у) (+ (* х х) (* у у))) .

Результат: sumsquare.

Вызов (применение) этой функции:

(sumsquare 34)

Результат: 25.

Определение функции задается списком, поэтому его можно модифицировать в ходе выполнения программы. Кроме того, некоторый символ может быть и именем функции и переменной.

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

Основу для построения различных функций образует набор небольшого числа примитивных встроенных функций. Базовыми функциями обработки S-выражений являются функции

CAR, CDR, CONS, ATOM, EQ, EQL, =

и другие, смысл которых отражен в табл. 3.7.

Таблица 3.7

Базовые функции обработки S-выражений

Функция

 

Вызов

 

Действие

 

Пример использования

 

CAR

(CAR список)

Возвращает головною часть

(CAR(1 234))

списка - его 1-й элемент

Результат:1

CDR

(CDR список)

Возвращает хвостовую часть

(CDR(! 234))

списка- все. кроме 1-го элемента

Результат:(2 3 4)

CONS

(CONS S-выра-

Строит список из переданных в

(CONS I (2 3 4))

жение список)

качестве аргументов головы и хвоста

Результат: (1234)

ATOM

(ATOMS-выра-

Предикат; проверяет, является ли

(ATOM A) : t

жение)

аргумент атомом, и возвращает либо t

(ATOM (1 2 3)): Nil

(истина), либо Nil или ("(ложь)

EQ

(EQ символ

Предикат: проверяет тождественность

(EQ A A): t

символ)

символов-аргументов, неприменим

(EQ X (CAR (X Y Z))): t

для чисел

EQL

(EQL число

Предикат, проверяет тождественность

(EQL 3.0 3.0): t

число)

чисел одного типа

=

(= число

Предикат, проверяет тождественность

число)

чисел различных типов

(=30.3el):t

EQUAL

(EQUAL число

Аналогична EQL,

(EQUAL(xyz)(xyz)):t

или список

но, кроме того, проверяет идентичность

число или список)

Списков

EQUALP

(EQUALP

Проверка наиболее общего равенства

объект объект)

NULL

(NULL список)

Проверка, является ли аргумент

пустым списком

NOT

(NOT логическая

Логическое отрицание

величина)

NTH

(NTH n список)

Выделение n-го элемента списка

(NTH 2 (1 2 3)): 3

(индексы начинаются с 0)

FIRST

Предикаты, выделяющие

SECOND

Соответствующие элементы списка

LAST

LIST

(LIST apr

Строит из аргументов список

(LIST a b (с)): (a b c)

арг2 ...)

<


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