From 0ab73e47af2bba3fb2ff6a4bf08ada4a3309bf3e Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Sat, 12 Oct 2024 10:07:07 +0200 Subject: Add java evaluator --- java/Abs.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 java/Abs.java (limited to 'java/Abs.java') diff --git a/java/Abs.java b/java/Abs.java new file mode 100644 index 0000000..9d1c146 --- /dev/null +++ b/java/Abs.java @@ -0,0 +1,26 @@ +package org.lambdanantes.lcgoji.ast; + +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; + +import static org.lambdanantes.lcgoji.ast.Var.var; + +@AllArgsConstructor(access = AccessLevel.PROTECTED) +@EqualsAndHashCode +public final class Abs implements Term { + + public static final Abs IDENTITY = λ("x", var("x")); + + public String arg; + public Term body; + + public static Abs λ(String arg, Term body) { + return new Abs(arg, body); + } + + @Override + public String toString() { + return "λ" + arg + "." + body; + } +} \ No newline at end of file -- cgit v1.2.3