Sha256: 933a46dfe895d371518f0d52570b5368771224521f8a7ab307880c426df71582

Contents?: true

Size: 743 Bytes

Versions: 66

Compression:

Stored size: 743 Bytes

Contents

module GradeSchool exposing (addStudent, allStudents, empty, studentsInGrade)

import Dict exposing (..)


type alias Grade =
    Int


type alias Student =
    String


type alias School =
    Dict Int (List Student)


empty : School
empty =
    Dict.empty


addStudent : Grade -> Student -> School -> School
addStudent grade student school =
    Dict.insert grade (List.sort (student :: studentsInGrade grade school)) school


studentsInGrade : Grade -> School -> List Student
studentsInGrade grade school =
    case Dict.get grade school of
        Just list ->
            list

        Nothing ->
            []


allStudents : School -> List ( Grade, List Student )
allStudents school =
    Dict.toList school |> List.sortBy Tuple.first

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/elm/exercises/grade-school/GradeSchool.example.elm
trackler-2.2.1.118 tracks/elm/exercises/grade-school/GradeSchool.example.elm
trackler-2.2.1.117 tracks/elm/exercises/grade-school/GradeSchool.example.elm
trackler-2.2.1.116 tracks/elm/exercises/grade-school/GradeSchool.example.elm
trackler-2.2.1.115 tracks/elm/exercises/grade-school/GradeSchool.example.elm
trackler-2.2.1.114 tracks/elm/exercises/grade-school/GradeSchool.example.elm