Difference between revisions of "Mutable List Assignment"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
=Code to Implement= | =Code to Implement= | ||
− | == | + | ==types== |
− | + | <nowiki>(* TODO: replace unit with the datatype/type synonym(s) you decide upon *) | |
− | + | type 'a mutable_list = unit</nowiki> | |
− | |||
− | |||
− | |||
− | == | + | ==functions== |
− | fun | + | <nowiki>val construct_empty = fn : unit -> 'a mutable_list |
− | raise NotYetImplemented | + | val length = fn : 'a mutable_list -> int |
+ | val clear = fn : 'a mutable_list -> unit | ||
+ | val add_to_front = fn : 'a mutable_list * 'a -> unit | ||
+ | val add_to_back = fn : 'a mutable_list * 'a -> unit | ||
+ | val contains = fn : ('a -> bool) * 'a mutable_list -> bool | ||
+ | val nth = fn : 'a mutable_list * int -> 'a | ||
+ | val construct_from_immutable = fn : 'a list -> 'a mutable_list | ||
+ | val foldl = fn : ('a * 'b -> 'b) * 'b * 'a mutable_list -> 'b | ||
+ | val to_immutable = fn : 'a mutable_list -> 'a list | ||
+ | val map = fn : ('a -> 'b) * 'a mutable_list -> 'b mutable_list | ||
+ | val copy = fn : 'a mutable_list -> 'a mutable_list | ||
+ | val @ = fn : 'a mutable_list * 'a mutable_list -> 'a mutable_list | ||
+ | val reverse = fn : 'a mutable_list -> unit</nowiki> | ||
+ | |||
+ | ==construct_empty== | ||
+ | fun construct_empty() : 'a mutable_list = | ||
+ | raise Fail "NotYetImplemented" | ||
− | |||
− | |||
− | |||
==length== | ==length== | ||
− | fun length( | + | fun length(mlist : 'a mutable_list) : int = |
− | raise NotYetImplemented | + | raise Fail "NotYetImplemented" |
+ | |||
+ | ==clear== | ||
+ | fun clear(mlist : 'a mutable_list) : unit = | ||
+ | raise Fail "NotYetImplemented" | ||
+ | |||
+ | ==add_to_front== | ||
+ | fun add_to_front(mlist : 'a mutable_list, value : 'a) : unit = | ||
+ | raise Fail "NotYetImplemented" | ||
− | == | + | ==add_to_back== |
− | fun | + | fun add_to_back(mlist : 'a mutable_list, value : 'a) : unit = |
− | raise NotYetImplemented | + | raise Fail "NotYetImplemented" |
− | == | + | ==contains== |
− | fun | + | fun contains(predicate : ('a -> bool), mlist : 'a mutable_list) : bool = |
− | raise NotYetImplemented | + | raise Fail "NotYetImplemented" |
− | == | + | ==nth== |
− | + | (* raise Subscript if out of bounds *) | |
− | raise NotYetImplemented | + | fun nth(mlist : 'a mutable_list, index : int) : 'a = |
+ | raise Fail "NotYetImplemented" | ||
− | == | + | ==construct_from_immutable== |
− | fun | + | fun construct_from_immutable(values : 'a list) : 'a mutable_list = |
− | raise NotYetImplemented | + | raise Fail "NotYetImplemented" |
− | == | + | ==foldl== |
− | fun | + | fun foldl(f : ('a * 'b -> 'b), init : 'b, mlist : 'a mutable_list) : 'b = |
− | raise NotYetImplemented | + | raise Fail "NotYetImplemented" |
+ | |||
+ | ==to_immutable== | ||
+ | fun to_immutable(mlist : 'a mutable_list) : 'a list = | ||
+ | raise Fail "NotYetImplemented" |
Revision as of 08:52, 21 February 2022
Contents
Code to Implement
types
(* TODO: replace unit with the datatype/type synonym(s) you decide upon *) type 'a mutable_list = unit
functions
val construct_empty = fn : unit -> 'a mutable_list val length = fn : 'a mutable_list -> int val clear = fn : 'a mutable_list -> unit val add_to_front = fn : 'a mutable_list * 'a -> unit val add_to_back = fn : 'a mutable_list * 'a -> unit val contains = fn : ('a -> bool) * 'a mutable_list -> bool val nth = fn : 'a mutable_list * int -> 'a val construct_from_immutable = fn : 'a list -> 'a mutable_list val foldl = fn : ('a * 'b -> 'b) * 'b * 'a mutable_list -> 'b val to_immutable = fn : 'a mutable_list -> 'a list val map = fn : ('a -> 'b) * 'a mutable_list -> 'b mutable_list val copy = fn : 'a mutable_list -> 'a mutable_list val @ = fn : 'a mutable_list * 'a mutable_list -> 'a mutable_list val reverse = fn : 'a mutable_list -> unit
construct_empty
fun construct_empty() : 'a mutable_list = raise Fail "NotYetImplemented"
length
fun length(mlist : 'a mutable_list) : int = raise Fail "NotYetImplemented"
clear
fun clear(mlist : 'a mutable_list) : unit = raise Fail "NotYetImplemented"
add_to_front
fun add_to_front(mlist : 'a mutable_list, value : 'a) : unit = raise Fail "NotYetImplemented"
add_to_back
fun add_to_back(mlist : 'a mutable_list, value : 'a) : unit = raise Fail "NotYetImplemented"
contains
fun contains(predicate : ('a -> bool), mlist : 'a mutable_list) : bool = raise Fail "NotYetImplemented"
nth
(* raise Subscript if out of bounds *)
fun nth(mlist : 'a mutable_list, index : int) : 'a =
raise Fail "NotYetImplemented"
construct_from_immutable
fun construct_from_immutable(values : 'a list) : 'a mutable_list = raise Fail "NotYetImplemented"
foldl
fun foldl(f : ('a * 'b -> 'b), init : 'b, mlist : 'a mutable_list) : 'b = raise Fail "NotYetImplemented"
to_immutable
fun to_immutable(mlist : 'a mutable_list) : 'a list = raise Fail "NotYetImplemented"