Функції рядків призначені для роботи з текстами. Вони забезпечують виконання великої кількості операцій над текстовими данними — порівняння, пошуку та перетворення P - імен символів та чисел.
1. UNPACK . Повертає список символів, P - імена кожного з яких складаються з символів атома . Якщо не є атомом, повертається NIL.
2. PACK . Повертає символ, P - ім’я якого складіється зі счеплених P - імен атомів у списку . Для визначення P - імен чисел використову- ється поточна система числення. Функція PACK завжди повертає символ, навіть якщо P - ім‘я складається тільки з однозначних чисел.
$ (PACK ‘(a b c d e) $ (PACK ‘(\7 \3 \1) $ (PACK ‘(Q \7 \A \1))
abcde |731| Q7A1
3. PACK* ... . Повертає символ, P-ім’я якого складається зі счеплених P-імен атомів. Ця функція є вузькою версією PACK, оскільки вона працює не зі списком атомів, а з будь-якою кількістю атомів.
$ (PACK* ‘a ‘b ‘c) $ (PACK 4 ‘QW ‘T)
ABC |4QWT|
4. CHAR . Якщо — символ або число, а — невід’ємне ціле число, функція CHAR повертає символ, P - ім’я якого є n-ий символ P - імені , причому відлік символів починається з 0. Функція повертає NIL якщо не ноль і не додатнє ціле число, або якщо P - ім’я атома містить меньш ніж n символів.
5. SUBSTRING . Якщо — символ або число, та — невід’ємні цілі, nЈm, то функція SUBSTRING повертає символ, P - ім’я якого складається з символів P - імен атома починаючи з n-ого до m-ого, причому відлік символів починається з 0. Якщо nЈ0, то вважається що n=0. Якщо m не вказано, або меньше за 0 чи більше за кількість символів в P - імені атома, m вважається рівним кількості символів в P - імені атома. Якщо n>m повертається NIL.
7. STRING-UPCASE . Повертає символ, P - ім’я якого співпадає з P - іменем атома, але всі його літери перетворюються в великі. Якщо не є атомом, повертається NIL.
$ (STRING-UPCASE “Lisp Is A Language”) $ (STRING-UPCASE ‘(a s d))
|LISP IS A LANGUAGE| NIL
8. STRING-DOWNCASE . Повертає символ, P - ім’я якого співпадає з P - іменем атома, але всі його літери перетворюються в маленькі. Якщо не є атомом, повертається NIL.
$ (string-upcase |This is A TEXT|) $ (string-downcase |This is A TEXT|)
|THIS IS A TEXT| |this is a text|
$ (STRING-UPCASE ‘i) $ (STRING-DOWNCASE ‘I)
I \i
9. FINDSTRING . Повертає номер позиції першого входження P - імені атома1 в P - ім’я атома2. Якщо - ноль або додатнє ціле, пошук починається з n-ого символа атома2. Якщо P - ім’я атома1 не знайдено, повертається NIL.
1. Написати функцію, яка для заданого атома знаходить максимальну кількість літер, яка в ньому йде підряд. Повернути конс, який складається з літери та числа. Наприклад, для атома a22eeerty повернути (e . 3).
По замовченню за пристрій потокового вводу (CIS - Current Input Stream) береться консоль.1. 1. Для читання даних з вхідного потоку використовують функцію READ. Після виконання команди (SETQ a (READ)) ви повинні ввести з консолі вираз, який буде прочитано та присвоєно змінній а. При цьому якщо буде введено декілька об’єктів, то змінній а буде присвоєно перший об’єкт. Наприклад, якщо ви введете: as bf gh, то змінна a прийме значення as. Якщо Ви хочете ввести список (складний об’єкт), то його необхідно вводити в круглих дужках: (as df gh).
2. 2. Функція (CLEAR-INPUT) чистить буфер вводу. В будь-якому випадку повертається NIL.
3. 3. Функція (READ-LINE) читає елементи з CIS поки не буде прочитано символ переходу на новий рядок (). Повертається символ, Р-ім’я якого складається з усіх прочитаних символів як ті були розташовані у вхідному рядку, окрім .
4. 4. Функція (READ-CHAR) читає наступний елемент з CIS та повертає його.
5. 5. Функція (UNREAD-CHAR) повертає в CIS останній прочитаний символ.
6. 6. Функція (LISTEN) повертає T якщо CIS не порожній, та NIL якщо ми дійшли до кінця файлу.
7. 7. Функції (OPEN-INPUT-FILE “”) та (CLOSE-INPUT-FILE “”) використовуються для відкриття та закриття файла для вводу.
8. 8. Функції (OPEN-OUTPUT-FILE “”) та (CLOSE-OUTPUT-FILE “”) відповідно відкривають та закривають файл для виводу інформації.
Приклади
1. Надрукувати кількість літер sym в файлі name.
(DEFUN f (name sym) (SETQ a (READ))
(SETQ c 0) (IF (EQL a sym) (INCQ c)) )
(OPEN-INPUT-FILE name) (CLOSE-INPUT-FILE name)
(LOOP c )
((NOT (LISTEN)))
2. Надрукувати файл в оберненому порядку, якщо його елементи є атомами.
(DEFUN rew (in out) (PUSH (READ) temp) )
(OPEN-INPUT-FILE in) (LOOP
(OPEN-OUTPUT-FILE out) ((EQL temp NIL))
(SETQ temp NIL) (WRITE (POP temp))
(LOOP (SPACES 1) )
((NOT (LISTEN))) (CLOSE-INPUT-FILE in)
(CLOSE-OUTPUT-FILE out) )
Завдання
1. Написати функцію (SRT ), яка сортує текстовий файл та виводить дані в файл .
2. Написати функції (PRNUM2 num) та (PRNUM16 num), які відповідно друкують введені десяткові числа в двійковому та шістнадцятковому представленні.
3. Згенерувати за даними числом n та символом y список (y yy yyy yyyy .... yyyyyyyy. Кількість літер s в останньому елементі списку дорівнює n.
Рефераты по информатикеФункції рядків призначені для роботи з текстами. Вони забезпечують виконання великої кількості операцій над текстовими данними — порівняння, пошуку
Оценок: 573 (Средняя 5 из 5)
Одними из наиболее популярных услуг на рынке IT-технологий являются создание и продвижение лендингов. Они способны положительно влиять на деятельность любого бизнес-проекта в интернете. Судя по многочисленным отзывам, заказавшие создание лендингов люди ни разу не пожалели о потраченных деньгах. Они вложили в будущее, которое неразрывно связано с интернетом. Всё больше и больше предпринимателей обращаются к услугам разных агентств, веб-студий, чтобы заказать создание лендинга у профессионалов.