# blog

Programming
• ## Performant Elgot Algebras

As you may have read in one of my past posts or elsewhere, performance across languages can be complicated, and it's not always as obvious as you'd expect.

• ## Why Lenses Work

I came across the idea to use $$F$$-(co)algebras to encode general constructors and destructors when reading Martin Erwig's paper on synchromorphisms.

• ## Computing Continued Fractions With Apomorphisms

The modern theory of continued fractions comes from Christiaan Huygens, a Dutch physicist who invented the pendulum clock. Continued fractions turn out to be an especially elegant way of finding rational approximations of a number; this enabled him to design clocks with small gears that nonetheless provided the desired degree of accuracy.

• ## Mixing Supercompilers and Recursion Using Elgot Algebras

Relatively little has been written on Elgot algebras in Haskell. While this example is a little simple-minded (computing Collatz sequences for numbers), it is to my knowledge the only example of Elgot algebras with code1. Moreover, it shows off several of Haskell's strengths.

• ## Comparing Rust and Haskell Performance

"As fast as C" has been buzzing around Haskell circles, so I figured I'd write a short blog post on a benchmark I stumbled on that's actually faster than its equivalent in Rust for small inputs. I have good things to say about both languages, so stick around.

|