diff options
Diffstat (limited to 'Semestr 3/pf/lista3/procc.mli')
-rw-r--r-- | Semestr 3/pf/lista3/procc.mli | 55 |
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 |