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