![]() |
|
|
![]()
|
|
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Здравствуйте!
Решаю задачки, но застрял на одной, подтолкните в правильном направлении, пожалуйста. Условие: Есть строка, в ней надо заменить подстроки, которые состоят из 4х и больше одинаковых символов (идущих подряд) на знак ! + количество подряд идущих одинаковых символов + сам символ. Например: aabbaaabbbcsdkAAAAbbbbb => aabbaaabbbcsdk!4A!5b Ничего лучше, чем просто в do или loop идти по строке и искать вхождения одинаковых символов в голову не приходит.. Также не понятно как заменить подстроку. Нашел это, но мой emacs 21 не знаком с функцией replace-regexp-in-string. Спасибо за любые советы. -------------------- Don't let the system get you down. |
|||
|
||||
| _sg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 16.5.2007 Репутация: 2 Всего: 2 |
Это сообщение отредактировал(а) _sg - 2.12.2012, 11:27 --------------------
vk.com/ansicommonlisp |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
_sg, огромное спасибо! Не ожидал, что так запутано выйдет, буду разбираться!
-------------------- Don't let the system get you down. |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
_sg, можете, пожалуйста, пояснить, что происходит здесь:
а также что означает #? Спасибо. EDIT: разобрался со всем кроме apply и # Это сообщение отредактировал(а) Metalex - 2.12.2012, 16:39 -------------------- Don't let the system get you down. |
|||
|
||||
| _sg |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 16.5.2007 Репутация: 2 Всего: 2 |
Функция apply применяет функцию к одному и более аргументу, последним из которых должен быть список:
#' - сокращенная запись function - вызов функции, т.е. #'f эквивалентно (function f), например:
подробнее (с примерами): www.lispworks.com/documentation/HyperSpec/Body/f_apply.htm www.lispworks.com/documentation/HyperSpec/Body/02_dhb.htm Это сообщение отредактировал(а) _sg - 2.12.2012, 23:38 --------------------
vk.com/ansicommonlisp |
||||
|
|||||
| k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: нет Всего: 5 |
Можно еще так:
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
| Catstail |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.1.2013 Репутация: нет Всего: нет |
Вот чисто императивное решение для HomeLisp:
|
|||
|
||||
| Catstail |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 14.1.2013 Репутация: нет Всего: нет |
Вот еще одно решение (тоже для HomeLisp):
|
|||
|
||||
![]()
|
| Правила форума LISP | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LISP | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |