Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подскажите как решить задачу! помогите решить элементарную задачу 
:(
    Опции темы
чайник11
Дата 10.9.2009, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.9.2009

Репутация: нет
Всего: нет



Дан список (слово). Сделать циклическую перестановку на k элементов вправо


то есть было так: 1 2 3 5
после двух прогонов получится так: 3 5 1 2 
PM MAIL   Вверх
VH_
Дата 11.9.2009, 14:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



Код
(defun F (L K)
 (cond
  ((null L) nil)
  ((minusp K) L)
  ((zerop K) L)
  (T (F (cons (last L) (butlast L)) (1- K)))))

в некоторых диалектах (last) возвращает не последний элемент списка, а последнюю точечную пару (элемент . nil), в этом случае следует использовать конструкцию
Код
(cons (car (last L)) (butlast L))

PM MAIL   Вверх
_sg
Дата 25.4.2014, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 16.5.2007

Репутация: 2
Всего: 2



как вариант:
Код

(defun rotate> (w n)
  (if (zerop n) w (rotate> (nconc (last w) (butlast w)) (1- n))))
 
> (rotate> '(1 2 3 4 5) 2)
(4 5 1 2 3)

--------------------
vk.com/ansicommonlisp
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0655 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.