Skip to content

add a algebra simplification rules for range pattern match compiler #59

@bobzhang

Description

@bobzhang

for example:

let rec fib = function
  | 1 | 2 | 5 | 33 -> 1
  | n -> fib (n - 1 )  + fib (n - 2)
function fib(n) {
  var exit = 0;
  var switcher = n - 1;
  if (switcher > 4 || switcher < 0) {
    if (switcher !== 32) {
      exit = 1;
    }
    else {
      return 1;
    }
  }
  else if (switcher === 3 || switcher === 2) {
    exit = 1;
  }
  else {
    return 1;
  }
  if (exit === 1) {
    return fib(n - 1) + fib(n - 2);
  }

}

this should be simplified

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions