Sha256: cdc5217037663b6fd5583283f5cb275c5a1ea091d069e133737c48f3a0bca002

Contents?: true

Size: 973 Bytes

Versions: 92

Compression:

Stored size: 973 Bytes

Contents

module CustomSet

type Set<'T> = { items: 'T list }

let empty = { items = [] }

let singleton value = { items = [value] }

let isEmpty set = set.items.IsEmpty

let size set = set.items.Length 

let fromList list = { items = list |> List.sort |> List.distinct } 

let toList set = set.items

let contains value set = List.contains value set.items

let insert value set = value::set.items |> fromList

let union left right = left.items @ right.items |> fromList

let intersection left right = left.items |> List.filter (fun x -> List.contains x right.items) |> fromList

let difference left right = left.items |> List.filter (fun x -> List.contains x right.items |> not) |> fromList

let isEqualTo left right = (size left = size right) && (isEmpty (difference left right))

let isSubsetOf left right = left.items |> List.forall (fun x -> List.contains x right.items)

let isDisjointFrom left right = left.items |> List.exists (fun x -> List.contains x right.items) |> not

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.179 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.178 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.177 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.176 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.175 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.174 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.173 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.172 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.171 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.170 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.169 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.167 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.166 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.165 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.164 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.163 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.162 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.161 tracks/fsharp/exercises/custom-set/Example.fs
trackler-2.2.1.160 tracks/fsharp/exercises/custom-set/Example.fs