From 9f916a105f6b4e5a59aff41a2ebbb78c8aab3ff2 Mon Sep 17 00:00:00 2001 From: RogerGabeller-ml <78610776+RogerGabeller-ml@users.noreply.github.com> Date: Sun, 27 Oct 2024 07:21:32 +0000 Subject: Make beta-steps unique --- backend/main.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'backend/main.py') 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 -- cgit v1.2.3-70-g09d2