Sorted Dictionary Assignment

From CSE425S Wiki
Jump to navigation Jump to search
signature DICTIONARY = sig
    type (''k,'v) dictionary
    val get : ((''k,'v) dictionary *''k) -> 'v option
    val put : ((''k,'v) dictionary *''k *'v) -> 'v option
    val remove : ((''k,'v) dictionary *''k) -> 'v option
    val entries : (''k,'v) dictionary -> (''k*'v) list
    val keys : (''k,'v) dictionary -> ''k list
    val values : (''k,'v) dictionary -> 'v list
end

Code To Use

signature BINARY_TREE = sig
 val map : ('a -> 'b) -> ('a binary_tree) -> 'b binary_tree
 val filter : ('a -> bool) -> ('a binary_tree) -> 'a binary_tree
 val find_lnr : ('a -> bool) -> ('a binary_tree) -> 'a option
 val find_rnl : ('a -> bool) -> ('a binary_tree) -> 'a option
 val fold_lnr : (('a * 'b) -> 'b) -> ('b) -> ('a binary_tree) -> 'b
 val fold_rnl : (('a * 'b) -> 'b) -> ('b) -> ('a binary_tree) -> 'b
end

Code To Implement

Sorted Implementation

signature SORTED_DICTIONARY = sig include DICTIONARY
   type ''k compare_function = (''k*''k) -> order
   val create_sorted : ''k compare_function -> (''k,'v) dictionary
end