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