Church Numeral oriented Haskell Programmer:<p><pre><code> three = \f x -> f (f (f x))
fac = \n f -> n (\f n -> n (f (\f x -> n f (f x)))) (\x -> f) (\x -> x)
main = print $ fac three (+ 1) 0</code></pre>
As a C programmer, I think it is missing something like<p><pre><code> -- works for all 32-bit integers
fac n = [1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600]!!n</code></pre>
I have a similar list of FizzBuzzes in Lean from when I started programming in that language:<p><a href="https://drive.google.com/file/d/1lPnQiik5cAx0X2E3GNbw_Oaug87FNIOi/view?usp=sharing" rel="nofollow">https://drive.google.com/file/d/1lPnQiik5cAx0X2E3GNbw_Oaug87...</a><p>I wrote more, but it got too silly.
My first thought was, "Needs more monads".<p>Sure enough, in the commentary:<p>> Monads are woefully un-represented here; I would be grateful if someone could contribute a few (progressive) examples in the spirit of the development above.
> fac n = product [1..n]<p>This is a beautiful line of code.<p>In all seriousness, I'd probably prefer to find the Junior or "Another junior" version if I was browsing a project.
The invalid certificate and the oddball text encoding is illustrative of the Haskell programmer's inability to cope with practical computing problems.