bend-lang 0.2.38

A high-level, massively parallel programming language
Documentation
# A cool trick involving unscoped lambdas
# Implements constant-time queues with just lambdas

# Qnew : Queue a
Qnew: _ = λx x

# Qadd : a -> Queue a -> Queue a
Qadd: _ = λx λq λk (q λc (c x k))

# Qrem : Queue a -> Pair a (Queue a)
Qrem = λq (q $k λx λxs λp(p x λ$k xs))

# Output: [1, 2, 3]
main: (List u24) =
  let q = Qnew
  let q = (Qadd 1 q)
  let q = (Qadd 2 q)
  let q = (Qadd 3 q)
  ((Qrem q) λv0 λq
  ((Qrem q) λv1 λq
  ((Qrem q) λv2 λq
  [1, 2, 3])))