From 568405b0165e0edbc815c1375822c6059f81857a Mon Sep 17 00:00:00 2001 From: Ari Nugraha <nugrahaa878@gmail.com> Date: Thu, 12 Nov 2020 10:54:21 +0700 Subject: [PATCH] implement for input number 0-9 --- src/Language/Lambda/Parser.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Language/Lambda/Parser.hs b/src/Language/Lambda/Parser.hs index f3e36f0..2465d0f 100644 --- a/src/Language/Lambda/Parser.hs +++ b/src/Language/Lambda/Parser.hs @@ -9,7 +9,7 @@ import Text.Parsec.String import Language.Lambda.Expression parseExpr :: String -> Either ParseError (LambdaExpr String) -parseExpr = parse (whitespace *> expr <* eof) "" +parseExpr kata = parse (whitespace *> expr <* eof) "" (doOperation kata) expr :: Parser (LambdaExpr String) expr = try app <|> term @@ -52,6 +52,9 @@ symbol = void . lexeme . char keyword :: String -> Parser () keyword = void . lexeme . string +doOperation "" = "" +doOperation (x:xs) = ubahKeChurch x ++ doOperation xs + ubahKeChurch :: Char -> [Char] ubahKeChurch '+' = "(\\w y x. y (w y x))" ubahKeChurch '*' = "(\\x y z . x (y z))" -- GitLab