Пример 15.13. Использование функций, изменяющих содержание составной величины

(delete$ (create$ hammer drill saw pliers wrench) 3 4)

(delete$ (create$ computer printer hard-disk) 1 1)

(subseq$ (create$ hammer drill wrench pliers) 3 4)

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

(replace$ (create$ drill wrench pliers) 3 3 machete)

(replace$ (create$ abed) 2 3 x у (create$ q r s))

(insert$ (create$ abed) 1 x)

(insert$ (create$ abed) 4 у z)

(insert$ (create$ abed) 5 (create$ q r))

Рис. 15.13. Использование функций, изменяющих содержание составной величины

Для работы с составными переменными в рамках парадигмы списков, кото­рая часто используется в различных логических языках программирования, например Пролог, CLIPS предоставляет функции first$ и rest$. Синтаксис этих функций и примеры приведены ниже (см. также рис. 15.14).

Определение 15.41. Функции first$ и rest$

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

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

Первая функция возвращает в качестве составного значения первое поле заданной составной величины, а вторая — заданную составную величину без первого поля.

Пример 15.14. Использование функций first$ и rest$

(first$ (create$ abc))

(first$ (create$))

(rest$ (create$ a b с))

(rest$ (create$))

Рис. 15.14. Использование функций first$и rest$

Функция length$ возвращает число полей (целый тип), содержащихся в со­ставной величине. Если параметр length$ не соответствует необходимому типу, функция возвращает — 1.

Определение 15.42. Функция length$

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

Функция delete-member$ удаляет все вхождения заданных пользователем элементов или составных величин из начальной составной величины.

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

(delete-member$ <составная-величина> <выражение>+)

Для замены всех вхождений элементов или составных величин из начальной составной величины на некоторое выражение служит функция replace-member$. Первым аргументом этой функции является исходная составная величина. Второй аргумент задает простое или составное значение, на которое будут заменены все найденные вхождения. Третий аргумент определяет произвольное количество простых или составных элементов, которые необходимо найти и заменить в исходной составной величине.

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

(replace-member$ <составная-величина> <выражение> <>)

Ниже представлены примеры использования функций delete-member$ и replace-member$ (см. также рис. 15.15).

Пример 15.15. Использование функций delete-member$ и replace-member$

(delete-member$ (create$ a b a c) b a)

(delete-member$ (create$ a b с с b a) (create$ b a))

(replace-member$ (create$ a b a b) (create$ a b a) a b)

(replace-member$ (create$ a b a b) (create$ a b a) (create$ a b))

Рис. 15.15. Использование функций delete-member$ и replace-member$


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



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