Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
{-
Lambda-termide kompileerimine kombinaatoriteks ja kombinaatortermide
redutseerimine normaalkujule
comp1 --- kompileerib SKI kombinaatoriteks
comp2 --- kasutab optimiseerimisi (ainult B ja C kombinaatorid)
comp3 --- kasutab kõiki optimeerimisi
eval --- redutseerib etteantud kombinaatortermi normaalkujule
(kasutades normaaljärjekorda)
parseLam --- lambda-termide parser
prettyLam --- lambda-termide pretty-printer
parseComb --- kombinaatortermide parser
prettyComb --- kombinaatortermide pretty-printer
-}
import Parsers
import PrettyP
type Name = String
data LTerm = LVar Name
| LCon Name
| LApp LTerm LTerm
| LAbs Name LTerm
deriving Show
data CTerm = S | K | I | B | C | Sprim | Bprim | Bstar | Cprim
| CApp CTerm CTerm
| CVar Name
| CCon Name
instance Show CTerm where
show = showCTerm
showCTerm :: CTerm -> String
showCTerm (CApp t1 t2) = showCTerm t1 ++ " " ++ showArg t2
showCTerm t = showAtom t
showArg t@(CApp _ _) = "(" ++ showCTerm t ++ ")"
showArg t = showAtom t
showAtom S = "S"
showAtom K = "K"
showAtom I = "I"
showAtom B = "B"
showAtom C = "C"
showAtom Sprim = "S'"
showAtom Bprim = "B'"
showAtom Bstar = "B*"
showAtom Cprim = "C'"
showAtom (CVar n) = n
showAtom (CCon n) = n
comp1 :: LTerm -> CTerm
comp1 = undefined
comp2 :: LTerm -> CTerm
comp2 = undefined
comp3 :: LTerm -> CTerm
comp3 = undefined
eval :: CTerm -> CTerm
eval = undefined
parseLam :: String -> Maybe LTerm
parseLam = undefined
prettyLam :: LTerm -> String
prettyLam = undefined
parseComb :: String -> Maybe CTerm
parseComb = undefined
prettyComb :: CTerm -> String
prettyComb = undefined