> 1 <

Автор Сообщение

Satiys

Members


Статус

2 сообщений

Где: Russia Владивосток
Род занятий: студентка
Возраст: 30

#773   2009-12-17 07:40 GMT+3 часа(ов)      
Привет всем. Я смотрю такие темы тут не редкость... Ну да ладно. *(Извините, если достали =) )
Очень нужна ваша помощь. В универе задали сделать лабу на Lisp. При этом никаких разъяснений,объяснений и вообще лекций по Lisp Не было. Может быть конечно это я такая не умная, но пока меня не посадят и прямо перед глазами не покажут я ничего не пойму.
Пыталась читать учебники, но что-то как-то... Не понятно нечего.) (учебники правда без примеров)
Сейчас уже время совсем поджимает, последняя надежда на вас. (жаль, что поздно догадалась залезть на ваш форум, так может вы бы помогли мне разобраться, и не пришлось бы тупо просить написать за меня)
Ну все уже догадались к чему я клоню... Хотя ппц как неловко просить...
Вообщем вот задания:

Задание 1.
5.1 Составьте список студентов своей группы
(ФИО ФИО ... ФИО)
(ну эту я, не знаю правильно решила или нет, просто объявила список и в строчку там фамилии, естественно когда жмёшь Enter он его выводит в сл строчке =) Знаю, что Lisp Хитрый язык, но мож прокатит ;) )

Задание 2.
4. Используя композицию предикатов и логических связок, постройте функцию, которая проверяет, является ли ее аргумент списком из 2, 3, ... атомов;

Задание 3.
3. Пусть L 1 и L 2 - списки. Напишите функцию, которая возвращала бы T , если N - ые два элемента этих функций соответственно равны друг другу, и NIL в противном случае.

Задание 4.
4. Напишите функцию:
• удаляющую повторные вхождения элементов в список;

Задание 5.
1.Переведите следующие списочные записи в точечные:
• ((w) x);

VH

Members


Статус

289 сообщений

Где: ---
Род занятий:
Возраст:

#774   2009-12-17 09:37 GMT+3 часа(ов)      
ФИО - это <на самом деле> последовательность фамилии имени и отчества, что в LISPе естественно было бы представить списком, так что 'список студентов' - это список списков, и <может быть> преподы хотели интерактивный режим составления списка 'список студентов'.
(defun F2 (N L)
(cond
((minusp N) nil)
((null L) (zerop N))
((consp (car L)) nil)
(T (F2 (1- N) (cdr L)))))

(defun F3 (N L1 L2)
(cond
((null L1) nil)
((null L2) nil)
((minusp N) nil)
((zerop N) (equal (car L1) (car L2)))
(T (F3 (1- N) (cdr L1) (cdr L2)))))

Есть два варианта
1.здесь исключаются элементы, которые ближе к началу списка
Хювёнен-Сеппянен "Мир Лиспа" т.1 стр.373:
(defun LIST_SET (L) ; в оригинале МНОЖЕСТВО
(cond
((null L) nil)
((member (car L) (cdr L)) (LIST_SET (cdr L)))
(T (cons (car L) (LIST_SET (cdr L))))))

2.здесь порядок следования элементов сохраняется
(defun F4 (L &optional acc)
(cond
((null L) nil)
((member (car L) acc) (F4 (cdr L) acc))
((member (car L) (cdr L)) (cons (car L) (F4 (cdr L) (cons (car L) acc))))
(T (cons (car L) (F4 (cdr L) acc)))))

Хювёнен-Сеппянен "Мир Лиспа" т.1 стр.157:
((w) k) <-> ((w . NIL) . (k . NIL))

Satiys

Members


Статус

2 сообщений

Где: Russia Владивосток
Род занятий: студентка
Возраст: 30

#775   2009-12-17 11:08 GMT+3 часа(ов)      
Цитата
VH :
ФИО - это <на самом деле> последовательность фамилии имени и отчества, что в LISPе естественно было бы представить списком, так что 'список студентов' - это список списков, и <может быть> преподы хотели интерактивный режим составления списка 'список студентов'.


Всё может быть, но это самое первое задание написано под начальными понятиями вроде список, атом и т.п. И про списки списков там нет ничего, даже намёка (хотя я об этом тоже подумывала).

Спасибо огромное, сейчас буду компилить.)
И за ссылки на литературу тоже большое спасибо, этой книги у меня не было... хэх.
Ну, попробую первое задание сделать самостоятельно. Думаю, теперь получится как надо.
> 1 <


Онлайн :

0 пользователь(ей), 32 гость(ей) :




Реклама на сайте: