bend-lang 0.2.38

A high-level, massively parallel programming language
Documentation
# This program allocates a tree with True at the leaves then parallel ANDs them.
type Bool:
  True
  False

def and(a: Bool, b: Bool) -> Bool:
  match a:
    case Bool/True:
      return b
    case Bool/False:
      return Bool/False

# Trees of tuples are not typeable
def all(tree: Tree(Bool)) -> Bool:
  fold tree:
    case Tree/Node:
      return and(tree.left, tree.right)
    case Tree/Leaf:
      return tree.value

def gen(n: u24) -> Tree(Bool):
  switch n:
    case 0:
      return Tree/Leaf(Bool/True)
    case _:
      return Tree/Node { left: gen(n-1), right: gen(n-1) }

def main() -> Bool:
  return all(gen(8))