Skip to main content

Ideas To Explore

Refinement Types

It would be nice to allow defining refinement types. For example, defining a type for all prime numbers. One idea is to define a type based on a function over another type e.g.:

Prime: isPrime(Int)

Prime would represent all integers i that satisfy isPrime(i) == true.

Units

It would be nice to allow math with quantities that have associated units, and allow users to define their own units.

Concise Lambda Notation

Simple functions could be created concisely using $-notation.

Using $ as a term inside an expression could create a single-expression function that takes a single parameter:

# These are equivalent:
addOne: (a) -> a + 1
addOne: $ + 1