headshot of me

Micah Cantor

Hi, I'm Micah. I'm a student at Grinnell College studying computer science and math. Here you'll find my writing on my interests in functional programming, web development, and open source software.

Blog

Monad Confusion and the Blurry Line Between Data and Computation

The dual interpretations of data and computation, and a comparison of Clojure macros to Haskell monads.

haskell clojure functional-programming

Compiling a Subset of JavaScript to ARM Assembly in Haskell

A toy compiler for a subset of JavaScript to ARM assembly, using Haskell.

haskell programming-languages

Why learn Racket? A student's perspective

A few thoughts on why I think you should learn Racket.

racket programming-languages

About that Reader trick

Reader can be used to track local bindings, but tracking all bindings can be more difficult.

haskell programming-languages

The good and the bad of Typed Racket

Some thoughts on Typed Racket, gathered from my experience using it to implement a Lox interpreter.

racket programming-languages

Crafting Interpreters in Typed Racket

Some thoughts on following Bob Nystrom's book Crafting Interpreters in Typed Racket.

racket programming-languages

Solving a few Leetcode questions in Haskell

Exploring some purely functional programming solutions to a few popular Leetcode questions.

haskell leetcode

The strange, sketchy emails a browser extension developer receives

Where does extension malware come from? It might originate from emails like these.

chrome-extensions

Median Heaps in Haskell

An implementation and discussion of a median heap data structure in Haskell.

haskell data-structures

Book Review: Racket Programming the Fun Way by James Stelly

A review of the new Racket programming book.

racket

Implementing Simple Hash Tables in Racket

A simple implementation of mutable hash tables to learn how they work behind the scenes.

racket data-structures

Practical React: The Power of useInterval

A case study in switching from manually managing setInterval to the useInterval custom hook.

react

Don't go looking for you first open source contribution

The traditional method of approaching one's first open source contribution gamifies the process and leads an unhelpful experience for all involved.

open-source

Parsing propositional logic in 33 lines of Racket

A guide to implementing a simple parser for propositional logic in Racket.

racket logic