Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Lisp
Перезагрузить страницу GNU Common Lisp Списки
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
BlackYul BlackYul вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 8
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.11.2011
Exclamation GNU Common Lisp Списки - 19.12.2011, 16:15

Здравствуйте. помогите решить задачу написать программу, реализующую тел.справочник. в нем содержится информация о каждом абоненте: Ф,И,О, телефон, улица,номер дома, квартира. необходимо подсчитать количество абонентов, у которых нет однофамильцев.
Данную задачу реализовывала в Прологе.
есть список фактов.
spisok("Ivanov","Slava",11111).
spisok("Petrov","Igor",22222).
spisok("Sokolov","Fedor",3333,).
spisok("Sidorov","Kostya",4444).
spisok("Vasijev","Dmitrij",5555).
spisok("Petrov","Ivan",6666).
spisok("Ivanov","Fedor",7777).
как реализовать функцию, которая бы убирала все одинаковые фамилии?
Ответить с цитированием
  (#2 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 19.12.2011, 16:39

lisp Код:
(defun rd (w)
  (remove-duplicates w :key #'car :test #'string=))

> (rd '(("Ivanov" "Slava" 11111)("Petrov" "Igor" 22222) ("Sokolov" "Fedor" 3333) ("Sidorov" "Kostya" 4444) ("Vasijev" "Dmitrij" 5555) ("Petrov" "Ivan" 6666) ("Ivanov" "Fedor" 7777)))
(("Sokolov" "Fedor" 3333) ("Sidorov" "Kostya" 4444) ("Vasijev" "Dmitrij" 5555) ("Petrov" "Ivan" 6666) ("Ivanov" "Fedor" 7777))
Ответить с цитированием
Пользователь сказал cпасибо:
BlackYul (19.12.2011)
  (#3 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 19.12.2011, 18:01

lisp Код:
(defun rd (w)
  (cond ((null w) nil)
        ((member (caar w) (cdr w) :key #'car :test #'string=) (rd (cdr w)))
        ((cons (car w) (rd (cdr w))))))

> (rd '(("Ivanov" "Slava" 11111)("Petrov" "Igor" 22222) ("Sokolov" "Fedor" 3333) ("Sidorov" "Kostya" 4444) ("Vasijev" "Dmitrij" 5555) ("Petrov" "Ivan" 6666) ("Ivanov" "Fedor" 7777)))
(("Sokolov" "Fedor" 3333) ("Sidorov" "Kostya" 4444) ("Vasijev" "Dmitrij" 5555) ("Petrov" "Ivan" 6666) ("Ivanov" "Fedor" 7777))
Ответить с цитированием
Пользователь сказал cпасибо:
BlackYul (19.12.2011)
  (#4 (permalink)) Старый
_sg _sg вне форума
Member
 
Аватар для _sg
 
Сообщений: 525
Сказал(а) спасибо: 5
Поблагодарили 42 раз(а) в 38 сообщениях
Регистрация: 23.01.2007
По умолчанию 19.12.2011, 18:02

lisp Код:
(defun rd (w)
  (cond ((null w) nil)
        ((find (caar w) (cdr w) :key #'car :test #'string=) (rd (cdr w)))
        ((cons (car w) (rd (cdr w))))))

> (rd '(("Ivanov" "Slava" 11111)("Petrov" "Igor" 22222) ("Sokolov" "Fedor" 3333) ("Sidorov" "Kostya" 4444) ("Vasijev" "Dmitrij" 5555) ("Petrov" "Ivan" 6666) ("Ivanov" "Fedor" 7777)))
(("Sokolov" "Fedor" 3333) ("Sidorov" "Kostya" 4444) ("Vasijev" "Dmitrij" 5555) ("Petrov" "Ivan" 6666) ("Ivanov" "Fedor" 7777))
Ответить с цитированием
Пользователь сказал cпасибо:
BlackYul (19.12.2011)
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа для продажи театральных билетов на GNU Common Lisp Alex054 Lisp 0 25.12.2011 16:12
Срочно. списки GNU Common Lisp weevil Lisp 7 19.12.2011 09:02
Срочно. Сумма ряда. GNU Common Lisp weevil Lisp 5 13.12.2011 19:06
Точка входа в процедуру except handler4 common не найдена в библиотеке DLL msvcrt.dll jaataa Операционная система Windows 3 09.02.2010 15:26
Что за опция Common Language Runtime support Antsu Visual C++ 23 12.05.2008 18:29
Необходимо реализовать на Common LISP нахождение рещений произвольной системы imported_Dream Lisp 2 29.02.2008 09:24
Перевод книги Seibel Peter - Practical Common Lisp _sg Lisp 4 29.10.2007 21:58
Common Apps Admin($2000-$3000) ABV Group Работа 3 05.07.2007 17:09
Common Lisp / Scheme внешний вид таблицы _sg Lisp 1 06.06.2007 23:39
Современные интерпретаторы языка Common Lisp LPproger Lisp 2 06.02.2007 17:39
Prolog & Lisp Cr@$h Prolog 4 08.04.2005 20:34
Как модифицировать Common Dialog для всех программ Windows? NetKing Visual Basic 3 28.03.2004 03:40



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов