Safe Haskell | None |
---|---|
Language | Haskell2010 |
AUTHOR
- Dr. Alistair Ward
DESCRIPTION
- Defines the attributes of a location, in terms of its; capacity, facilities, whether it's off-site, & its availability.
- It refers to a more general concept than a merely a class-room, including for example, an assembly-hall or a games-field.
Synopsis
- type FacilityName = String
- type FacilityNames = Set FacilityName
- type WastedResources = (NStudents, FacilityNames)
- type Locus locationId = Set locationId
- data Profile campus
- capacityTag :: String
- facilityTypeIdTag :: String
- facilityNameTag :: String
- facilityValueTag :: String
- defaultFacilityNames :: FacilityNames
- calculateWaste :: NStudents -> FacilityNames -> Profile campus -> WastedResources
- calculateRelativeWaste :: Fractional relativeWaste => Profile campus -> WastedResources -> (relativeWaste, relativeWaste)
- calculateRelativeUse :: Fractional relativeUse => Profile campus -> WastedResources -> (relativeUse, relativeUse)
- getWastedFacilityNames :: WastedResources -> FacilityNames
- mkProfile :: Show campus => NStudents -> FacilityNames -> Availability -> campus -> Profile campus
- hasFacilities :: Profile campus -> Bool
- isSuitable :: NStudents -> FacilityNames -> Profile campus -> Bool
Types
Type-synonyms
type FacilityName = String Source #
- A subject-specific facility, e.g. "desks", "musical instruments", or "goal-posts".
- The specific string used to designate these must match those defined for courses.
type FacilityNames = Set FacilityName Source #
The set of facility-names advertised by a location.
type WastedResources = (NStudents, FacilityNames) Source #
A measure of the capacity & specific facilities, which are available at a location, but are unused in some context.
Data-types
Aggregates the attributes of a location, which a generalisation of a room, since it also includes games-fields.
Instances
Eq campus => Eq (Profile campus) Source # | |
Show campus => Show (Profile campus) Source # | |
NFData campus => NFData (Profile campus) Source # | |
Defined in WeekDaze.Data.Location | |
(Default campus, Eq campus, XmlPickler campus, Show campus) => XmlPickler (Profile campus) Source # | |
Defined in WeekDaze.Data.Location | |
Show campus => SelfValidator (Profile campus) Source # | |
Resource (Profile campus) Source # | |
Defined in WeekDaze.Data.Location getAvailability :: Profile campus -> Availability Source # |
Constants
capacityTag :: String Source #
Used to qualify SQL & XML.
facilityTypeIdTag :: String Source #
Used to qualify SQL & XML.
facilityNameTag :: String Source #
Used to qualify SQL & XML.
facilityValueTag :: String Source #
Used to qualify XML.
defaultFacilityNames :: FacilityNames Source #
The default value for facilityNames.
Functions
:: NStudents | The required capacity. |
-> FacilityNames | The required facilities. |
-> Profile campus | The location whose resources are to be compared with requirements. |
-> WastedResources |
- Measures the excess capacity & unused facilities, of the specified location.
- All facilities are considered equal.
- CAVEAT: each location must have previously passed
isSuitable
.
calculateRelativeWaste :: Fractional relativeWaste => Profile campus -> WastedResources -> (relativeWaste, relativeWaste) Source #
Convert WastedResources
to a pair of ratios.
calculateRelativeUse :: Fractional relativeUse => Profile campus -> WastedResources -> (relativeUse, relativeUse) Source #
The relative extent to which capacity & facilities are used.
Accessors
getWastedFacilityNames :: WastedResources -> FacilityNames Source #
Accessor.
Constructor
mkProfile :: Show campus => NStudents -> FacilityNames -> Availability -> campus -> Profile campus Source #
Smart constructor.
Predicates
hasFacilities :: Profile campus -> Bool Source #
True if the location has some facilities.
isSuitable :: NStudents -> FacilityNames -> Profile campus -> Bool Source #
- True if the
Profile
meets or exceeds the specified criteria. - Takes no account of either availability or campus.