IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> рекурсия и ассоциативные списки, lisp
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


задание таково, что надо из списка ((d t b u)(t b u)(d b u)(b u)(d t u)(t u)(d u)(u)(d t b)(t b)(d b)(b)(d t)(t)(d)) сформировать список пар (ассоциативный список), с неповторяющимися значениями в этих парах.

я думаю, что надо использовать функцию pairlis и
Код
  (defun add (x y al)
(cond ((null al) nil)
(t (acons x y (car al)
(add (cdr al))))))
(add b u al)


как-то так, но как всязать все эти функции пока не знаю... может кто поможет? !mol1.gif

Сообщение отредактировано: Jerry -


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Можно подробнее - что такое ассоциативный список? т.е. что должно получиться на выходе, скажем, из этого списка?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


Цитата(мисс_граффити @ 6.10.2008 19:27) *

Можно подробнее - что такое ассоциативный список? т.е. что должно получиться на выходе, скажем, из этого списка?


ассоциативный - это список пар типа ((ф а)(в п)(в р)...)
я в принципе нашла как можно сделать первую часть задания:
1) свернуть данный список в одноуровневый, тоесть без скобок
Код
(defun pr (l)
(cond ((null l) nil)
((atom l)(cons (car l) nil))
(t (append (pr (car l))(pr (cdr l))))))

2) с помощью функции pairlis создать список пар
а вот как удалить повторные пары элементов (да и может необязательно пары... чтобы хоть что-то было) из полученого списка не знаю ((

Сообщение отредактировано: Jerry -


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


как из ((d t b u)(t b u)(d b u)(b u)(d t u)(t u)(d u)(u)(d t b)(t b)(d b)(b)(d t)(t)(d)) получилось ((ф а)(в п)(в р)...) ?!!!
Нифига не понимаю.

Как сделать, чтобы не было повторных - могу рассказать. Но пока вообще не понимаю, нужно ли это.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


Цитата(мисс_граффити @ 8.10.2008 23:48) *

Как сделать, чтобы не было повторных - могу рассказать. Но пока вообще не понимаю, нужно ли это.


((d t)(b u)(t b)(u b)(b u)...) - такой список выходит. теперь в нем надо избавится от повторных пар.



--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


избавляйся "на лету".
то есть если такая пара уже есть, то ее добавлять не надо.

сравниваешь пару, которую планируешь добавить, с первой парой списка, и применяешь эту же функцию к остатку.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 46
Пол: Женский

Репутация: -  0  +


спасибо


--------------------
Zettai Unmei Mokushiroku
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 17:30
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name