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")