I stumbled over Bart de Goede’s article on building a full-text search engine in 150 lines of Python, and was reminded of my quest to show how useful Haskell is for solving real-world problems. Python is an eminently practical language, so nobody is surprised this can be done in Python. But Haskell? The Python code spends a lot of time updating mutable dictionaries. Surely we cannot easily port this code over to Haskell.
Let’s find out.
Search Index in 150 Lines of Haskell
https://entropicthoughts.com/search-index-150-lines-haskell
4 Comments
gedhrel@lemmy.world · 6 pts · 1y
"Since we are talking about aggregating documents into an index, the word semigroup might pop into our heads."
This is why Haskell tutorials have a bad rep. Why not use a common English term like "monoid" instead?
Snark aside, the
<>approach to solving the problem piecewise and aggregating the results into a larger instance of the same type is a really convenient approach.Noughtmare@programming.dev · 4 pts · 1y
Not only is it convenient, it also enables parallelism:
"How to Think about Parallel Programming: Not!" - Guy L. Steele Jr. (Strange Loop 2010)
gedhrel@lemmy.world · 3 pts · 1y
Yes! Steele's Fortress-era talks are amazing. Really thought-provoking.
gedhrel@lemmy.world · 1 pts · 1y
Yes! Steele's Fortress-era talks are amazing. Really thought-provoking.