Skip to content

Instantly share code, notes, and snippets.

View jjant's full-sized avatar
馃挜

Julian Antonielli jjant

馃挜
View GitHub Profile
@jjant
jjant / lookUpEmployee1.elm
Created August 22, 2018 23:51
Won't typecheck
type alias Table1 =
List EmployeeFromDb1
lookUpEmployee1 : Id -> Table -> Maybe Employee1
lookUpEmployee1 id table =
table
|> List.filter (\employee -> employee.id == id)
|> List.head
employeeFromDbToApplication : EmployeeFromDb1 -> List Employee1 -> Employee1
employeeFromDbToApplication (EmployeeFromDb1 empDb) employees =
Employee1
{ id = empDb.id
, name = empDb.name
, age = empDb.age
, employees = employees
}
lookUpEmployee2 : Id -> Table1 -> Maybe Employee1
lookUpEmployee2 id table =
let
maybePerson =
table
|> List.find (\(EmployeeFromDb1 employee) -> employee.id == id)
employees =
table
|> List.filter (\(EmployeeFromDb1 emp) -> emp.employerId == id)
type EmployeeWithCount1
= EmployeeWithCount1
{ id : Id
, name : String
, age : Int
, employeeCount : Int
}
type Employee a
= Employee
{ id : Id
, name : String
, age : Int
}
a
type alias EmployeeFromDb =
Employee Id
type alias EmployeeWithCount =
Employee Int
type alias EmployeeApp =
Employee (List (Employee ()))
map : (a -> b) -> Employee a -> Employee b
map f (Employee sharedData a) =
Employee sharedData (f a)
type alias Table =
List EmployeeFromDb
lookUpEmployee : Id -> Table -> Maybe EmployeeApp
lookUpEmployee id table =
let
maybePerson =
List.find (\(Employee employee _) -> employee.id == id) table