aboutsummaryrefslogtreecommitdiff
path: root/Semestr 3/pf/lista3/procc.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/lista3/procc.mli
parentf8a88b6a4aba1f66d04711a9330eaba49a50c463 (diff)
Duzy commit ze smieciami
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