Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

типы данных.(Haskell)

75K
08 октября 2011 года
АнтиФ
1 / / 08.10.2011
Задание по идее простое, но не получается его сделать.

В современных web- магазинах часто продают книги, видеокассеты и компакт диски. База данных такого магазина для каждого типа товаров должна содержать следующие характеристики
*книги - название и автор
*видеокассеты - название
*компакт диск - название, исполнитель и кол-во композиций
1)разработать тип данных Product который может представлять эти виды товаров
2)определить функцию getTitle возвращающую название товара
3)на её основе определите функцию getTitles которая по списку товаров возвращает список названий
4)определите функцию bookAuthors которая по списку товаров возвращает список авторов книг
5)определите функцию lookupTitle::String->[Product]->Maybe Product которая возвращает товар с заданным названием
6)определите функцию lookupTitles::[String]->[Product]->[Product]
Она принимает в качестве параметров список названий и список товаров и для каждого названия извлекает из второго соответствующие товары. Названия которым не соответствуют никакой товар игнорируются. при определении функции обязательно используйте функцию lookupTitle

вот что я написал.
Код:
data Book = Book String String
data Video = Video String
data CDisk = CDisk String String Int
data Product = Product Book  Video CDisk

--для разных товаров
class Titleable a where
  getTitle :: a ->String
instance Titleable Book where
  getTitle (Book title _) = title
instance Titleable Video where
  getTitle (Video title) = title
instance Titleable CDisk where
  getTitle(CDisk title _ _) = title

--получение тайтлов
getTitles (x:xs) = [ getTitle x | x<-xs ]

--получение товаров
lookupTitles (x:xs) (y:ys) = [y|x<-xs,y<-ys,x==lookupTitle y]


но у меня затруднения с определением функции lookupTitle и функцией bookAuthors. Также мне непонятно как переменные объявить чтобы проверить написанные мной функции.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог