#furry #fursuit #protogen #fursuitfriday #protobean #plushie #algorithm #graphtheory #fordfulkerson #clrs
wed bwak twee (uwusing mefod fwom intwoducshun two algowifms)
https://github.com/WW92030-STORAGE/DataStructures/blob/main/REDBLACKTREE.CPP
#redBlackTrees #binarytree #clrs #algorithms #datastructures
\(\textit{Purely Functional Data Structures}\) (1999) by Chris #Okasaki is a 💎.
All popular algorithms and data structures textbooks, including my favourite, the venerable #CLRS, are decidedly #imperative. The more a book leans toward the practical, the more blatantly imperative it gets.
But #Okasaki's book, the only one of its kind that I'm aware, is markedly different. It's functional—purely #functional. It's written in #StandardML, my favourite #programming language. It also includes #Haskell implementations in the appendix. The writing style is typical #CS—clear, concise, cogent.
I never got to teach from it, since it came out well after I escaped academia. But I heartily recommend serious CS students to study it, especially those with an unhealthy FP obsession. Experienced #FP programmers should read it, too. And FP novices must read it.
I just published on GitHub the #Jupyter #notebook #Python implementations and commentaries of several #algorithms from #CLRS (4ed, 2022, https://rb.gy/mt0ak).
The purpose of this project is to show undergraduate #CS students and #IT practitioners how to derive \(\textit{code}\) from the English algorithmic descriptions given in CLRS and how to \(\textit{test}\) the code using the theorems, lemmas, and other mathematical properties proven in CLRS.
This is an ongoing endeavour. In the initial publication, it includes the elementary graph algorithms. I will be adding more algorithms from the textbook, in due course.
To read the rendered Jupyter notebooks in the browser, just click on the \(\texttt{.ipynb}\) files in the repository, or type in the repository URL into https://MyBinder.org. The README shows how to use JupyterLab Desktop to interact with the live notebooks locally on the user's computer.