diff options
| author | RogerGabeller-ml <78610776+RogerGabeller-ml@users.noreply.github.com> | 2024-10-27 07:21:32 +0000 |
|---|---|---|
| committer | RogerGabeller-ml <78610776+RogerGabeller-ml@users.noreply.github.com> | 2024-10-27 07:21:32 +0000 |
| commit | 9f916a105f6b4e5a59aff41a2ebbb78c8aab3ff2 (patch) | |
| tree | af59e65bf6efee1534d4d593f4cf6b244dad885e /backend | |
| parent | e9ae8a66a1a0361520fcc43e4b72fbce9b468c52 (diff) | |
Make beta-steps unique
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/main.py | 14 |
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 |
