Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с рекурсивной функцией 
V
    Опции темы
Katran7
Дата 12.11.2010, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго всем времени суток. Помогите пожалуйста с решением такой задачки: необходимо написать  рекурсивную функцию YintoX, которая любое S-выражение преобразует в новое, в котором все атомы отличные от NIL были бы заменены переменной X. 

Например, (YintoX ‘(A (B . C) X Y NIL Z)) ------> (X (X . X) X X NIL X)

Заранее спасибо.
PM MAIL   Вверх
VH_
Дата 12.11.2010, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код
(defun YintoX (S)
 (cond
  ((null S) nil)
  ((atom S) (quote X))
  (T
   (cons
    (YintoX (car S))
    (YintoX (cdr S))))))

Обращаю Ваше внимание на то, что символ '(апостроф) - это сокращенная запись вызова формы (quote), а символ `(обратный апостроф) - сокращенная запись вызова <совсем другой> формы (backquote).
PM MAIL   Вверх
Katran7
Дата 18.11.2010, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Огромное спасибо!


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

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

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


 




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


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

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