Here I present two ways to write Euler's totient function in ATS. First we write our primality check:
I started work on my ATS math library recently; though I'm not sure it will be a wholehearted success, there were parts that deserve attention.
This was inspired by Gabriel Gonzalez's post, so you may wish to read that first.
Functional programming often gets criticized as being slow, so I wanted to present an example where it is in fact several times faster than the equivalent imperative code1.next