aboutsummaryrefslogtreecommitdiff
path: root/semestr-3/pf/lista7/Perm.mli
diff options
context:
space:
mode:
Diffstat (limited to 'semestr-3/pf/lista7/Perm.mli')
-rw-r--r--semestr-3/pf/lista7/Perm.mli24
1 files changed, 24 insertions, 0 deletions
diff --git a/semestr-3/pf/lista7/Perm.mli b/semestr-3/pf/lista7/Perm.mli
new file mode 100644
index 0000000..cc18496
--- /dev/null
+++ b/semestr-3/pf/lista7/Perm.mli
@@ -0,0 +1,24 @@
+
+module type OrderedType = sig
+ type t
+ val compare : t -> t -> int
+end
+
+module type S = sig
+ type key
+ type t
+ (** permutacja jako funkcja *)
+ val apply : t -> key -> key
+ (** permutacja identycznościowa *)
+ val id : t
+ (** permutacja odwrotna *)
+ val invert : t -> t
+ (** permutacja która tylko zamienia dwa elementy miejscami *)
+ val swap : key -> key -> t
+ (** złożenie permutacji (jako złożenie funkcji) *)
+ val compose : t -> t -> t
+ (** porównywanie permutacji *)
+ val compare : t -> t -> int
+end
+
+module Make(Key : OrderedType) : S with type key = Key.t \ No newline at end of file