aboutsummaryrefslogtreecommitdiff
path: root/semestr-3/pf/lista7/Perm.mli
diff options
context:
space:
mode:
authorFranciszek Malinka <franciszek.malinka@gmail.com>2021-10-05 21:49:54 +0200
committerFranciszek Malinka <franciszek.malinka@gmail.com>2021-10-05 21:49:54 +0200
commitc5fcf7179a83ef65c86c6a4a390029149e518649 (patch)
treed29ffc5b86a0d257453cedcf87d91a13d8bf3b0d /semestr-3/pf/lista7/Perm.mli
parentf8a88b6a4aba1f66d04711a9330eaba49a50c463 (diff)
Duzy commit ze smieciami
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