Links und Funktionen
Sprachumschaltung

Navigationspfad
Sie sind hier: Startseite / Lehre / SS 2015 / Programmierung und Modellierung / ProMo Material / Code Vorlesung 15.06.


Inhaltsbereich

Code Vorlesung 15.06.

nacheineinder & komposition: Verschmelzen von IO-Aktionen zu Fuss.

Haskell source code icon komposition.hs — Haskell source code, 1 KB

Dateiinhalt

-- Damit es kein Namenskonflikt mit echtem IO gibt:
import Prelude hiding (IO) 

type Welt = Integer          -- Dummy ohne Bedeutung
type IO a = Welt -> (a,Welt)

nacheinander :: IO a -> IO b -> IO b
nacheinander f = komposition f . const

-- komposition  :: IO a -> (a -> IO b) -> IO b
komposition :: (Welt -> (a,Welt))       ->  -- Typ von Argument "f"
               (a ->  Welt -> (b,Welt)) ->  -- Typ von Argument "g"
               Welt                     ->  -- Typ von Argument "w1"
               (b,Welt)                     -- Typ des Ergebnis der Funktion
komposition f g w1 =
  let (x,w2) = f   w1 in  -- x::a, w2::Welt
  let (y,w3) = g x w2 in  -- y::b, w3::welt
  (y,w3)
  -- Anstatt der letzten beiden Zeilen hätte man auch direkt schreiben können:
  -- g x w2



Artikelaktionen


Funktionsleiste