From 63c0c643bb8f60d7cf481b89c3102678c808d2a1 Mon Sep 17 00:00:00 2001 From: Cédric Date: Sun, 13 Oct 2024 16:00:03 +0200 Subject: Delete duplicated files in java implementation --- java/LCEvaluator.java | 59 --------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 java/LCEvaluator.java (limited to 'java/LCEvaluator.java') diff --git a/java/LCEvaluator.java b/java/LCEvaluator.java deleted file mode 100644 index b0fe69b..0000000 --- a/java/LCEvaluator.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.lambdanantes.lcgoji; - -import org.lambdanantes.lcgoji.ast.Abs; -import org.lambdanantes.lcgoji.ast.App; -import org.lambdanantes.lcgoji.ast.Term; -import org.lambdanantes.lcgoji.ast.Var; - -import static org.lambdanantes.lcgoji.ast.Abs.λ; -import static org.lambdanantes.lcgoji.ast.App.apply; - -public class LCEvaluator { - - public static Term evaluate(Term term) { - switch (term) { - case Var var -> { - return var; - } - case Abs abs -> { - return abs; - } - case App app -> { - switch (app.left) { - case Abs abs -> { - return substitute(abs.body, abs.arg, app.right); - } - case App _app -> { - return app; - } - case Var _var -> { - return app; - } - } - } - } - } - - private static Term substitute(Term body, String arg, Term val) { - switch (body) { - case Var var -> { - if (var.name.equals(arg)) { - return val; - } else { - return body; - } - } - case App app -> { - return apply(substitute(app.left, arg, val), substitute(app.right, arg, val)); - } - case Abs abs -> { - if (abs.arg.equals(arg)) { - // Pas de substitution des variables redéfinies - return abs; - } else { - return λ(abs.arg, substitute(abs.body, arg, val)); - } - } - } - } -} \ No newline at end of file -- cgit v1.2.3