In general, the reduction of practical programs encoded in lambda calculus is not very efficient when compared to traditional programming languages. We do, however, work a lot on making the performance as comparable as possible:

  • We have different reducers and constantly benchmark and improve them in order to find the most efficient method of reduction. Read more about our reducer choices.
  • Bruijn uses efficient data structures by default. For example, for nary numbers we use results of Torben Mogensens investigations (as described in number/byte encodings).
  • Bruijn has a -O flag that enables abstraction of duplicated terms
  • The lambda calculus optimizers BLoC and BLoCade are directly integrated into bruijn and can be enabled optionally (see compilation)