programming.dev
  • Communities
  • Create Post
  • Create Community
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
Noughtmare to HaskellEnglish · 10 months ago

Search Index in 150 Lines of Haskell

entropicthoughts.com

external-link
message-square
4
link
fedilink
  • cross-posted to:
  • [email protected]
9
external-link

Search Index in 150 Lines of Haskell

entropicthoughts.com

Noughtmare to HaskellEnglish · 10 months ago
message-square
4
link
fedilink
  • cross-posted to:
  • [email protected]

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.

alert-triangle
You must log in or # to comment.
  • gedhrel@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    10 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.

    • NoughtmareOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      10 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
        ·
        10 months ago

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

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

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

Haskell

haskell

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: [email protected]
Visibility: Public
globe

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

  • 1 user / day
  • 5 users / week
  • 14 users / month
  • 76 users / 6 months
  • 156 local subscribers
  • 615 subscribers
  • 176 Posts
  • 62 Comments
  • Modlog
  • mods:
  • haskman
    cake
  • BE: 0.19.13
  • Modlog
  • Legal
  • Instances
  • Docs
  • Code
  • join-lemmy.org