Speicher--Übung

Code aus Vorlesung: http://dfa.imn.htwk-leipzig.de/cgi-bin/gitweb.cgi?p=ws11-cb.git

git clone git://dfa.imn.htwk-leipzig.de/srv/git/ws11-cb

Fakultät imperativ:

let { fak = \ n -> 
        { a := new 1 ;
          while ( n > 0 ) 
            { a := a * n ; n := n - 1; }
          return a; 
        }
    } in  fak 5

  1. Schleife durch Rekursion ersetzen und Sequenz durch let:
    fak = let { a = new 1 }
          in  Rec f ( \ n -> ... )
    
  2. Syntaxbaumtyp erweitern um Knoten für Sequenz und Schleife



Johannes Waldmann 2012-01-30