Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
1 result

lambda.hs

Blame
  • lambda.hs 985 B
    module Main where
    
    data Lam
      = ReplaceMe -- TODO
      deriving (Show, Read)
    
    -- [beta s t] führt die β-Reduktion des Redex [(λ. s) t] durch
    beta :: Lam -> Lam -> Lam
    beta s t = error "beta-Reduktion nicht implementiert!" -- TODO
    
    -- [isNormal t] prüft, ob [t] eine Normalform ist
    isNormal :: Lam -> Bool
    isNormal = error "Normalform-Check nicht implementiert!" -- TODO
    
    -- [evalNormal s] reduziert [s] mittels normaler Reduktion
    evalNormal :: Lam -> Lam
    evalNormal = error "Normale Reduktion nicht implementiert!" -- TODO
    
    -- [evalApplicative s] reduziert [s] mittels applikativer Reduktion
    evalApplicative :: Lam -> Lam
    evalApplicative = error "Applikative Reduktion nicht implementiert!" -- TODO
    
    main :: IO ()
    main = interact (\s -> let n = evalNormal (read s)
                               a = evalApplicative (read s)
                           in n `seq` a `seq`
                                 "normal:      " ++ show n
                              ++ "\napplicative: " ++ show a ++ "\n")