If we were to create a Rust version of this page for Haskell, what cool programming techniques would you add to it?

      • SorteKanin@feddit.dk
        link
        fedilink
        arrow-up
        17
        ·
        24 hours ago

        It’s a test for the compiler which ensures that these legal yet extremely weird expressions continue to compile as the compiler is updated. So there is a purpose to the madness but it does still look pretty funny.

    • barsoap@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      3 hours ago

      That makes complete sense. Ranges implement fmt::Debug, .. is a range, in particular the full range (all values) ..= isn’t because the upper bound is missing but ..=.. ranges from the beginning to the… full range. Which doesn’t make sense semantically but you can debug print it so add a couple more nested calls and you get a punch card.

      I totally didn’t need the Rust playground to figure that out.

      EDIT: Oh, glossed over that: .. is only the full range if standing alone, it’s also an infix operator which is why you can add as many as you want (be careful with whitespace, though). .. .. .. .. .. .. .. .. .. .. is a valid Rust expression.