Skip to content

Rewrite inline let terms and case statements for targets like Python #203

@joshsh

Description

@joshsh

The Hydra kernel previously had quite a few definitions which could not be directly translated into Python. For example, case statements within lambdas could not be translated unless the lambda could be turned into a def, as Python's match statements are statements, not expressions (i.e. they can only appear at the top level of a definition). While other problems were solved through rewriting, inline let and cases were solved by simply editing the Hydra sources -- it is usually easy to avoid these constructions by creating more let bindings.

However, that is not a good long-term solution. Users should be able to write any valid Hydra programs, and expect that they will map without failure into each target language, including Python. All of the previously unsupported definitions have been rewritten for Python compatibility; we just need to find a way to automate this rewriting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions