All solutions are provided in Factor, a dynamically typed, stack-oriented, concatenative language that offers a different perspective on functional programming.
Factor's bundled library includes tons of helpful "vocabularies" like math.combinatorics
and math.primes
, some of which would solve a problem with single word so I avoid making full use of them until I've implemented a concept at least once. For instance, the first time finding the prime factors of a number comes up, I'll write the code out myself, but if it comes up again in later problems, I'll just use math.primes.factors
.