This is a excellent write-up. I'm really impressed how quick it was to whip up a UI for manual solving.
I would argue however that Rust counts as a functional programming language, however. Algebraic data types, higher-order programming and immutability are all idiomatic features of the language.