]> Joshua Wise's Git repositories - snipe.git/blobdiff - util/symbol.sml
Add string pasting support to the gramamr.
[snipe.git] / util / symbol.sml
index 590f9be1ce2c45ea7459943ce8ca823a8dcd9ad3..3111761560c14f517d9d591dc14b606de91e64d0 100644 (file)
@@ -38,6 +38,12 @@ sig
   val elems : 'a table -> 'a list (* return all the data as a list *)
   val elemsi : 'a table -> (symbol * 'a) list (* return the symbols with the associated data *)
   val keys : 'a table -> symbol list (* just the symbols *)
+  val intersect : ('a * 'a -> 'a) -> 'a table * 'a table -> 'a table
+  
+  val mapi : (symbol * 'a -> 'b) -> 'a table -> 'b table
+  val mapPartial : ('a -> 'b option) -> 'a table -> 'b table
+  val mapPartiali : (symbol * 'a -> 'b option) -> 'a table -> 'b table
+  val appi : (symbol * 'a -> unit) -> 'a table -> unit
 
   (* symbol set -- similar to a () Symbol.table, elements can be removed *)
   type set
@@ -103,6 +109,11 @@ struct
   fun elems t = Map.listItems t
   fun elemsi t = Map.listItemsi t
   fun keys t = Map.listKeys t
+  fun intersect binding (t1,t2) = Map.intersectWith binding (t1,t2)
+  fun mapi f t = Map.mapi f t
+  fun mapPartial f t = Map.mapPartial f t
+  fun mapPartiali f t = Map.mapPartiali f t
+  fun appi f t = Map.appi f t
 
   fun delimit' [] s = s
     | delimit' [x] s = s ^ x
This page took 0.022143 seconds and 4 git commands to generate.