102. Simplifying expressions via record patterns
Java records can help us to simplify snippets of code meant to handle/evaluate different expressions (mathematical, statistical, string-based, Abstract Syntax Tree (AST), and so on) a lot. Typically, evaluating such expressions implies a lot of conditions and checks that can be implemented via if
and/or switch
statements.
For example, let’s consider the following records meant to shape string-based expressions that can be concatenated:
interface Str {}
record Literal(String text) implements Str {}
record Variable(String name) implements Str {}
record Concat(Str first, Str second) implements Str {}
Some parts of the string expression are literals (Literal
) while others are provided as variables (Variable
). For brevity, we can evaluate these expressions only via the concatenation operation (Concat
), but feel free to add more operations.
During the evaluation, we have an intermediary step for simplifying the expression...