Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 23:47   #1
F.Ury
 
Регистрация: 09.04.2011
Сообщений: 4
По умолчанию Иерархия классов Haskell

Здравствуйте! Суть задачи: Определить тип данных,
представляющий информацию об иерархии классов. Описать следующие функции:
1) getParent, возвращающую непосредственного предка класса
с указанным именем.
2) getPath, возвращающую список всех предков данного класса
(непосредственный предок, предок предка и т. д.)
3) getMethods, возвращающую список методов указанного
класса с учетом наследования.
4) inherit, добавляющая в иерархию классов класс с заданным
именем, унаследованный от указанного предка.

Код Haskell

Код:
data Class = Class { cid :: String, methods :: [String], subclasses :: [Class] } deriving Show
 
orelse = (++)
 
getParent hs cid1 = aux [] hs
  where aux s x 
          | cid x /= cid1 = foldr (orelse . aux [x])   [] (subclasses x)    
        aux s _           = s            
 
getPath hs cid1 = aux [] hs
  where aux s x 
          | cid x /= cid1 = foldr (orelse . aux (x:s)) [] (subclasses x)
        aux s _           = s      
 
inherit hs cid1 cl =  aux hs
  where aux hs' = hs' { subclasses = (if cid hs' == cid1 then (mixin hs' :) 
                                                         else (map aux)
                                     ) $ subclasses hs' 
                      }
        mixin hs' = cl { methods = on (++) methods cl hs' } 
 
getMethods hs cid1 = aux hs
  where aux x 
          | cid x /= cid1 = foldr (orelse . aux) [] (subclasses x)
        aux x             = [methods x] 
            
mkClass id' methods' = Class id' methods' []
Не могу разобраться с входными параметрами, а точнее с 3-им типа [Class]. Что ни пробовал вводить, но интерпретатор постоянно ругается? Кто-нибудь может привести пример входных данных. Спасибо!

Последний раз редактировалось F.Ury; 12.12.2012 в 00:11.
F.Ury вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ИЕРАРХИЯ КЛАССов DEVU Помощь студентам 2 15.05.2012 08:17
Иерархия классов К_С_Ю Помощь студентам 1 19.04.2012 02:39
Иерархия классов на C++ Владилена Помощь студентам 1 08.04.2012 23:21
иерархия классов Freek123 Фриланс 3 28.10.2011 09:14
Иерархия классов lirikoff Помощь студентам 7 21.10.2010 23:51