Copyright | (c) Justus Adam, 2015 |
---|---|
License | LGPL-3 |
Maintainer | development@justusadam.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | Safe |
Language | Haskell2010 |
Exports the most important functions neccessary for the actual work of this software
- calcFromMap :: Ord s => Map s [Lesson s] -> Maybe [MappedSchedule s]
- calcFromList :: Ord s => [Lesson s] -> Maybe [MappedSchedule s]
- totalWeight :: MappedSchedule a -> Int
- data Lesson s = Lesson {}
- type Timeslot = (Int, Int)
- data Target
- data Rule = Rule {}
- mapToSubject :: Ord s => [Lesson s] -> Map s [Lesson s]
- type MappedSchedule s = Map Timeslot (Lesson s)
- weigh :: [Rule] -> [Lesson s] -> [Lesson s]
Documentation
calcFromMap :: Ord s => Map s [Lesson s] -> Maybe [MappedSchedule s]
Main evaluation function
Transforms a map of weighted Lesson
s of a particular subject into a list
of lightest schedules by branching the evaluation at avery point
where there is a timeslot collision
calcFromList :: Ord s => [Lesson s] -> Maybe [MappedSchedule s]
Same as calcFromMap
but operates on a List of Lesson
s
totalWeight :: MappedSchedule a -> Int
Convenience function to obtain the total weight of a particular Schedule
data Lesson s
Base datastructure for representing lessons
data Rule
mapToSubject :: Ord s => [Lesson s] -> Map s [Lesson s]
Map a List of Lesson
s to their respective subjects
type MappedSchedule s = Map Timeslot (Lesson s)
type Alias for readability represents a schedule