About the language

Faithful to Lambda Calculus

Marigold aims to preserve the patterns found in lambda calculus. It doesn't want to be a completely new language, but instead a helping hand for lambda calculus. This means preserving

  • Existing patterns, such as fixed point recursion
  • Church encodings
  • All logic in lambda calculus
  • etc.

Human-Friendly

We are not computers, or robots, or aliens. We don't want to write

(λmn.λgy.m g (n g y)) (λfx.f x) (λfx.f x)

to calculate 1 + 1. So, Marigold sacrificed some "faithfulness" for readability. For example, operators like addition don't follow the function argument argument pattern, but make it both easier to read and write.

Lightweight

Some languages are more robust than others. And that's great! Putting 20 different keywords before a variable assignment can absolutely be useful sometimes. Marigold is not one of those languages. Any boilerplate gets cut, for a simple, quick coding experience.