Пример 15.11. Работа с составными величинами

(create$ hammer drill saw screw pliers wrench)

(create$ (+ 34) (* 2 3) (/84))

(nth$ 3 (create$ a b с d e f g))

(nth$ 10 (create$ a b с d e f g))

(member$ blue (create$ red 3 "text" 8.7 blue))

(member$ 4 (create$ red 3 "text" 8.7 blue))

(member$ (create$ b c) (create$ abed))

(subsetp

(create$ hammer saw drill)

(create$ hammer drill wrench pliers saw))

(subsetp

(create$ wrench crowbar)

(create$ hammer drill wrench pliers saw))

Рис. 15.11. Работа с составными величинами

Функции explode$ и implode$ предназначены для преобразования строки в составную величину и составной величины в строку соответственно. Пустая строка создает составную величину нулевой длины. Элементы строки типов, отличных от symbol, string, integer, float или instance-name (например, переменные), преобразуются в тип string. Синтаксис и примеры использования этих функций приведены ниже (см. также рис. 15.12).

Определение 15.36. Функции explode$ и implode$

(explode$ <строковое выражение>)

(implode$ <составная-величина>)

Пример 15.12. Использование функций еxplode$ и implode$

(explode$ "hammer drill saw screw")

(explode$ "1 2 abc 3 4 \"abc\" \"def\"")

(explode$ "?x ~)")

(implode$ (create$ hammer drill screwdriver))

(implode$ (create$ 1 "abc" def "ghi" 2))

(implode$ (create$ "abc def ghi"))

Рис. 15.12. Использование функций explode$ и implode$

Функция delete$ удаляет выбранные поля из составной величины и воз­вращает модифицированную составную величину, из которой удален отре­зок, заданный индексами своего первого и последнего элемента. Если тре­буется удалить одно поле, то индекс начала отрезка должен совпадать с ин­дексом конца.

Определение 15.37. Функция delete$

(delete$ <составная-величина> <индекс-начала> <индеке-конца>)

Для извлечения подпоследовательности из составной величины служит функция subseq$. Определение границ извлекаемой подпоследовательности происходит так же, как и у функции delete$.

Определение 15.38. Функция subseq$

(subseq$ <составная-величина> <индекс-начала> <индекс-конца>)

Функция replace$ предназначена для замены выбранного диапазона эле­ментов составной величины на заданную простую или составную величину. Функция возвращает новую составную величину, содержащую измененный фрагмент.

Определение 15.39. Функция replace$

(replace$ <изменяемая-составная-величина> <индекс-начала> <индекс-конца> <простая-или-составная-величина>+)

Для добавления нескольких простых или составных величин в заданное место некоторой составной величины предназначена функция insert$.

Определение 15.40. Функция insert$

(insert$ <изменяемая-составная-величина> <индекс-начала> <простая-или-составная-величина>+)

В качестве второго параметра эта функция принимает целое число, являющееся индексом, начиная с которого в заданную составную величину будут добавлены новые поля. Примеры использования этой и остальных функ­ций, изменяющих содержание составной величины, приведены ниже (см. также рис. 15.13).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: