(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).