Опубликован: 19.03.2004 | Доступ: свободный | Студентов: 2799 / 417 | Оценка: 3.98 / 3.79 | Длительность: 17:50:00
ISBN: 978-5-9556-0008-6
Лекция 11:

Варианты, последовательности, множества

< Лекция 10 || Лекция 11: 123 || Лекция 12 >

Обработка множеств и последовательностей

При реализации недетерминированных моделей обычно используются средства обработки множеств и последовательностей. В современных системах функционального программирования такие средства достаточно разнообразны. Здесь приведены лишь наиболее очевидные:

Member — выделяет часть списка, начиная с заданного объекта, NIL — если такого объекта в списке нет.

(member 'a (b a c)) ;= (a c)
(member 'd (b a c)) ;= NIL

Set-difference — строит список элементов первого аргумента, не входящих во второй аргумент. Имеет деструктивный аналог — nset-difference .

Set-exlusive-or — строит список элементов первого или второго аргумента, но не входящих в оба сразу. Имеет деструктивный аналог — nset-exlusive-or .

Unionобъединение множеств — строит список элементов первого или второго аргумента. Имеет деструктивный аналог — nunion .

Intersectionпересечение множеств — строит список элементов первого, входящих во второй аргумент. Имеет деструктивный аналог — nintersection .

Delete — строит последовательность из элементов второго аргумента за исключением совпадающих с первым аргументом. Имеет деструктивный аналог — remove .

(delete 1 '(1 2 1 3 1 4)) ;= (2 3 4)

Concatenate — строит новую последовательность заданного типа из своих аргументов, начиная со второго, при этом копирует их, кроме последнего. Для списков имеет деструктивный аналог — nconc .

Elt — выдает элемент последовательности по заданному номеру.

Find — отыскивает заданный символ в последовательности, можно управлять направлением поиска.

Sort — упорядочивает последовательность по заданному предикату.

(sort '(1 2 1 3 1 4) #’<) ;= (1 1 1 2 3 4)

Map — отображает с помощью данной функции ряд последовательностей в новую последовательность типа, заданного первым аргументом. Отображающая функция — второй аргумент. Кратность применения отображающей функции определяется длиной кратчайшего аргумента, начиная с третьего. Имеет деструктивный аналог map-into, строящий результат из первого аргумента.

Reverse — обращает последовательность. Имеет деструктивный аналог nreverse.

Position — выдает номер позиции первого вхождения заданного символа в последовательность.

Substitute — выполняет систематическую замену "старого" символа на "новый" в последовательности. Имеет деструктивный аналог — nsubstitute.

Maphash — методично применяет отображающую функцию двух аргументов к каждой паре из ключа и соответствующего значения в хэш-таблице.

< Лекция 10 || Лекция 11: 123 || Лекция 12 >
Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?

Илья Ардов
Илья Ардов

Добрый день!

Я записан на программу. Куда высылать договор и диплом?