⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mono-hash2-table-sig.sml

📁 这是我们参加06年全国开源软件的竞赛作品
💻 SML
字号:
(* mono-hash2-table-sig.sml * * COPYRIGHT (c) 1996 by AT&T Research. * * Hash tables that are keyed by two keys (in different domains). * * AUTHOR:  John Reppy *	    AT&T Bell Laboratories *	    Murray Hill, NJ 07974 *	    jhr@research.att.com *)signature MONO_HASH2_TABLE =  sig    structure Key1 : HASH_KEY    structure Key2 : HASH_KEY    type 'a hash_table    val mkTable : (int * exn) -> 'a hash_table	(* Create a new table; the int is a size hint and the exception	 * is to be raised by find.	 *)    val clear : 'a hash_table -> unit	(* remove all elements from the table *)    val insert : 'a hash_table -> (Key1.hash_key * Key2.hash_key * 'a) -> unit	(* Insert an item.  If the key already has an item associated with it,	 * then the old item is discarded.	 *)    val lookup1 : 'a hash_table -> Key1.hash_key -> 'a    val lookup2 : 'a hash_table -> Key2.hash_key -> 'a	(* Find an item, the table's exception is raised if the item doesn't exist *)    val find1 : 'a hash_table -> Key1.hash_key -> 'a option    val find2 : 'a hash_table -> Key2.hash_key -> 'a option	(* Look for an item, return NONE if the item doesn't exist *)    val remove1 : 'a hash_table -> Key1.hash_key -> 'a    val remove2 : 'a hash_table -> Key2.hash_key -> 'a	(* Remove an item, returning the item.  The table's exception is raised if	 * the item doesn't exist.	 *)    val numItems : 'a hash_table ->  int	(* Return the number of items in the table *)    val listItems  : 'a hash_table -> 'a list    val listItemsi : 'a hash_table -> (Key1.hash_key * Key2.hash_key * 'a) list	(* Return a list of the items (and their keys) in the table *)    val app  : ('a -> unit) -> 'a hash_table -> unit    val appi : ((Key1.hash_key * Key2.hash_key * 'a) -> unit) -> 'a hash_table		-> unit	(* Apply a function to the entries of the table *)    val map  : ('a -> 'b) -> 'a hash_table -> 'b hash_table    val mapi : ((Key1.hash_key * Key2.hash_key * 'a) -> 'b) -> 'a hash_table		-> 'b hash_table	(* Map a table to a new table that has the same keys *)    val fold  : (('a * 'b) -> 'b) -> 'b -> 'a hash_table -> 'b    val foldi : ((Key1.hash_key * Key2.hash_key * 'a * 'b) -> 'b) -> 'b		-> 'a hash_table -> 'b(** Also mapPartial?? *)    val filter  : ('a -> bool) -> 'a hash_table -> unit    val filteri : ((Key1.hash_key * Key2.hash_key * 'a) -> bool) -> 'a hash_table		-> unit	(* remove any hash table items that do not satisfy the given	 * predicate.	 *)    val copy : 'a hash_table -> 'a hash_table	(* Create a copy of a hash table *)    val bucketSizes : 'a hash_table -> (int list * int list)	(* returns a list of the sizes of the various buckets.  This is to	 * allow users to gauge the quality of their hashing function.	 *)  end (* MONO_HASH2_TABLE *)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -