aboutsummaryrefslogtreecommitdiff
path: root/Semestr 3/pf/lista3/procc.mli
diff options
context:
space:
mode:
Diffstat (limited to 'Semestr 3/pf/lista3/procc.mli')
-rw-r--r--Semestr 3/pf/lista3/procc.mli55
1 files changed, 0 insertions, 55 deletions
diff --git a/Semestr 3/pf/lista3/procc.mli b/Semestr 3/pf/lista3/procc.mli
deleted file mode 100644
index 64d834b..0000000
--- a/Semestr 3/pf/lista3/procc.mli
+++ /dev/null
@@ -1,55 +0,0 @@
-(* Ten plik, razem z plikiem proc.ml implementują prostą bibliotekę do
- lekkich, kooperatywnych wątków. Aby używać tej biblioteki trzeba ją
- najpierw skompilować za pomocą poleceń:
-
- $ ocamlc -c proc.mli
- $ ocamlc -c proc.ml
-
- i ewentualnie, gdy ktoś chce z niej korzystać w programach kompilowanych
- do kodu maszynowego:
-
- $ ocamlopt -c proc.ml
-
- Aby załadować bibliotekę do interpretera, przekaż odpowiedni plik cmo
- jako argument interpretera w wierszu poleceń:
-
- $ utop proc.cmo
-
- Implementowane w niej funkcje są widoczne w module Proc:
-
- # Proc.run (Proc.send "ABC") ;;
- ABC
- - : unit = ()
-
- Można też moduł Proc otworzyć:
-
- # open Proc ;;
- # run (send "ABC") ;;
- ABC
- - : unit = ()
-*)
-
-(** Abstrakcyjny typ odpowiedzi *)
-type ('z,'i,'o) ans
-
-(** Obliczenie w CPS-ie wewnątrz pojedynczego procesu.
- Ma cztery parametry:
- 'a - typ obliczenia (typ oczekiwany przez kontynuację)
- 'z - typ zwracanej wartości przez cały proces
- 'i - typ elementów strumienia wejściowego
- 'o - typ elementów strumienia wyjściowego *)
-type ('a,'z,'i,'o) proc = ('a -> ('z,'i,'o) ans) -> ('z,'i,'o) ans
-
-(** Wysyłanie pojedynczej wartości do strumienia wyjściowego *)
-val send : 'o -> (unit,'z,'i,'o) proc
-
-(** Odebranie pojedynczej wartości ze strumienia wejściowego *)
-val recv : ('i,'z,'i,'o) proc
-
-(** Zastępuje bieżący proces dwoma nowymi połączonymi ze sobą *)
-val (<|>>) : ('z,'z,'i,'m) proc -> ('z,'z,'m,'o) proc -> ('a,'z,'i,'o) proc
-
-(** Uruchamia proces. Na wejściu znajdują się kolejne wiersze wejścia
- standardowego, natomiast wysyłane napisy są przekazywane na wyjście
- standardowe. *)
-val run : ('a,'a,string,string) proc -> 'a