RBlind
  • Communities
  • Create Post
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
Noughtmare@programming.dev to Haskell@programming.devEnglish · 11 months ago

Search Index in 150 Lines of Haskell

entropicthoughts.com

external-link
message-square
4
link
fedilink
8
external-link

Search Index in 150 Lines of Haskell

entropicthoughts.com

Noughtmare@programming.dev to Haskell@programming.devEnglish · 11 months ago
message-square
4
link
fedilink

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.

  • gedhrel@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    11 months ago

    “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.devOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      11 months ago

      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
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        Yes! Steele’s Fortress-era talks are amazing. Really thought-provoking.

      • gedhrel@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        Yes! Steele’s Fortress-era talks are amazing. Really thought-provoking.

Haskell@programming.dev

haskell@programming.dev

Subscribe from Remote Instance

Create a post
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !haskell@programming.dev
Visibility: Public
globe

This community can be federated to other instances and be posted/commented in by their users.

  • 1 user / day
  • 9 users / week
  • 13 users / month
  • 70 users / 6 months
  • 1 local subscriber
  • 627 subscribers
  • 77 Posts
  • 11 Comments
  • Modlog
  • mods:
  • haskman@programming.dev
  • BE: 0.19.16
  • Modlog
  • Legal
  • Instances
  • Docs
  • Code
  • join-lemmy.org