src/Pure/General/table.ML
changeset 38635 f76ad0771f67
parent 35012 c3e3ac3ca091
child 39020 ac0f24f850c9
equal deleted inserted replaced
38634:bff9c05fe229 38635:f76ad0771f67
   390 fun make_list args = fold_rev cons_list args empty;
   390 fun make_list args = fold_rev cons_list args empty;
   391 fun dest_list tab = maps (fn (key, xs) => map (pair key) xs) (dest tab);
   391 fun dest_list tab = maps (fn (key, xs) => map (pair key) xs) (dest tab);
   392 fun merge_list eq = join (fn _ => Library.merge eq);
   392 fun merge_list eq = join (fn _ => Library.merge eq);
   393 
   393 
   394 
   394 
       
   395 (* ML pretty-printing -- requires Poly/ML 5.3.0 or later *)
       
   396 
       
   397 val _ =
       
   398   PolyML.addPrettyPrinter (fn depth => fn pretty => fn tab =>
       
   399     ml_pretty
       
   400       (ML_Pretty.enum "," "{" "}"
       
   401         (ML_Pretty.pair (pretty_ml o PolyML.prettyRepresentation) (pretty_ml o pretty))
       
   402         (dest tab, depth)));
       
   403 
       
   404 
   395 (*final declarations of this structure!*)
   405 (*final declarations of this structure!*)
   396 fun map f = map_table (K f);
   406 fun map f = map_table (K f);
   397 val map' = map_table;
   407 val map' = map_table;
   398 val fold = fold_table;
   408 val fold = fold_table;
   399 val fold_rev = fold_rev_table;
   409 val fold_rev = fold_rev_table;