diff options
Diffstat (limited to 'java/Abs.java')
| -rw-r--r-- | java/Abs.java | 26 |
1 files changed, 26 insertions, 0 deletions
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 |
