aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--backend/main.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/backend/main.py b/backend/main.py
index 30ca0ab..58798af 100644
--- a/backend/main.py
+++ b/backend/main.py
@@ -153,7 +153,11 @@ def get_beta_steps(expression: LambdaExpression, steps: int) -> LambdaExpression
for i in range(steps):
expression = beta_reduction(expression)
expressions.append(str(expression))
- return expressions
+ ordered_unique_expressions = []
+ for expression in expressions:
+ if expression not in ordered_unique_expressions:
+ ordered_unique_expressions.append(expression)
+ return ordered_unique_expressions
@app.post("/evaluate")
async def evaluate(expression: str):
@@ -165,5 +169,9 @@ async def evaluate(expression: str):
@app.get("/random")
async def random_expression():
- expression = random_lambda_expression(10, [chr(i) for i in range(97, 123)][:5])
- return {"steps": get_beta_steps(expression, 4), "expression": str(expression)} \ No newline at end of file
+ expression = random_lambda_expression(5, [chr(i) for i in range(97, 123)][:5])
+ steps = get_beta_steps(expression, 4)
+ while len(steps) < 4:
+ expression = random_lambda_expression(5, [chr(i) for i in range(97, 123)][:5])
+ steps = get_beta_steps(expression, 4)
+ return {"steps": steps, "expression": str(expression)} \ No newline at end of file