SDF Chatter
  • Communities
  • Create Post
  • Create Community
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
lawrence@lemmy.world to Programmer Humor@lemmy.ml ·
edit-2
1 year ago

Ok, at some point we made a big mistake.

lemmy.world

message-square
40
fedilink
305

Ok, at some point we made a big mistake.

lemmy.world

lawrence@lemmy.world to Programmer Humor@lemmy.ml ·
edit-2
1 year ago
message-square
40
fedilink

Hacker News post about this: https://news.ycombinator.com/item?id=39309783 (source available)

alert-triangle
You must log in or register to comment.
  • superfes@lemmy.world
    link
    fedilink
    arrow-up
    59
    ·
    1 year ago

    I’ve written some magic templates that I assume are not easy to read by those who don’t know.

    But this is seemingly unmaintainable… terrifying… and kind of neat.

  • GissaMittJobb@lemmy.ml
    link
    fedilink
    arrow-up
    54
    arrow-down
    1
    ·
    1 year ago

    This doesn’t actually read as serious TypeScript, moreso as someone trying to showcase unhinged code.

    I’d be happy to be proven wrong with a link to the source code so that I can look the beast in the eye.

    • tyler@programming.dev
      link
      fedilink
      arrow-up
      16
      arrow-down
      2
      ·
      1 year ago

      Take a look at some typescript libraries and frameworks and you will see stuff like this. Completely unreadable mess.

      • ris@feddit.de
        link
        fedilink
        arrow-up
        19
        ·
        1 year ago

        I have seen image recognition or text RPGs with type script types, but const ok:true = true as Grid< 4, 9, 2 Wtf

        • MinekPo1@lemmy.ml
          link
          fedilink
          English
          arrow-up
          4
          arrow-down
          1
          ·
          1 year ago

          note that it continues onto the next line

      • Meltrax@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        1 year ago

        Styled Components’ type system is one of the most impressive and most fucked up things I’ve ever had to dive into.

      • Big P@feddit.uk
        link
        fedilink
        English
        arrow-up
        5
        ·
        1 year ago

        For example?

        • sloppy_diffuser@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          4
          ·
          1 year ago

          Not OP, and these examples are not unreadable, but they are a few steps up from your typical generics.

          https://effect-ts.github.io/effect/effect/Unify.ts.html#unify

          https://effect-ts.github.io/effect/effect/Pipeable.ts.html

          • marcos@lemmy.world
            link
            fedilink
            arrow-up
            8
            ·
            1 year ago

            Creating basic functionality for the language always leads to unreadable code.

            The C++ version would be much, much worse, and the Lisp version is Lisp.

            • sloppy_diffuser@sh.itjust.works
              link
              fedilink
              English
              arrow-up
              3
              ·
              1 year ago

              Agree. What I linked provides core type support for that library. The pipe one is just a bunch of overloads to support a specific way of handling function composition to appease the TypeScript type checker.

              There are a lot of typing hacks in that library to simulate higher kinded types.

          • thesporkeffect@lemmy.world
            link
            fedilink
            arrow-up
            4
            ·
            1 year ago

            Right to jail. Right now.

  • clericc@lemmy.world
    link
    fedilink
    arrow-up
    31
    ·
    edit-2
    1 year ago

    After 5 minutes of staring at it: Its typesystem sudoku. Each row and each col in the grid must add up to 15 (T<>), bit each number in the grid must be different (Df<>).

    Grid will only be a type alias for the value true (google “Dependent types”) only if all Type Parameters (wich are values) hold up to the Sudoku conditions).

    The file would not compile with “true as Grid” when grid type-aliases to false.

    Fun to understand.

    EDIT: too late

  • thesporkeffect@lemmy.world
    link
    fedilink
    arrow-up
    29
    ·
    1 year ago

    I like to think I can usually look at code in languages I don’t know and still get the gist of what it does but I am drawing a complete blank. Is this even slightly legible to anyone and if yes please explain

    • MinekPo1@lemmy.ml
      link
      fedilink
      English
      arrow-up
      44
      ·
      1 year ago

      TL;DR: Grid<A,B,C,D,E,F,G,H> simplifies to true, if and only if it is a 3x3 magic square.

      full explanation
      • Fifteen is an array of length 15
      • T<A,B,C> checks if an array of length A+B+C is equivalent to an array of length 15, thus checking if A+B+C is equal to 15
      • And<A,X> is simplifies to X if A is true, else it simplifies to false
      • Df<A,B,X> checks if A and B are Diffrent , simplifying to X if they are
      • Grid<A,B,C,D,E,F,G,H> first checks if every row, column and diagonal is equal to 15, then checks if every item is unique.
  • ryannathans@aussie.zone
    link
    fedilink
    arrow-up
    24
    ·
    1 year ago

    Why tf

  • algernon@lemmy.ml
    link
    fedilink
    arrow-up
    11
    ·
    1 year ago

    I think I can pinpoint the exact date things went sideways. It was a dark day on Monday, October 1, 2012.

  • Aurenkin@sh.itjust.works
    link
    fedilink
    arrow-up
    10
    ·
    1 year ago

    This seems like a generic type of problem that could happen to anyone. Hopefully we can learn from this and avoid appending it to our already large grid of problems.

    • settoloki@lemmy.one
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      1 year ago

      I see what you did there

  • 9point6@lemmy.world
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    1 year ago

    I’m really trying to figure out what this is used for and why it was done this way.

    I’m not having much success

    • platypus_plumba@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      Looks like something that checks that the rows in a grid att up to 15. Why? IDK, a game?

  • baseless_discourse@mander.xyz
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    1 year ago

    Yeah, and apparently type checking/inference is trivial, says the “CTO” of Xitter. /s

  • loaf@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 year ago

    My soul hurts

  • THCDenton@lemmy.world
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    I don’t want to look at this anymore

  • velox_vulnus@lemmy.ml
    link
    fedilink
    arrow-up
    6
    arrow-down
    1
    ·
    edit-2
    6 months ago

    deleted by creator

    • Omega_Haxors@lemmy.ml
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      Can confirm.

  • toastal@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    If TypeScript didn’t have terrible type-level ergonomics, this wouldn’t look so bad—even if this toy example is largely just a brain exercise

  • CannotSleep420@lemmygrad.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    @OCRBot@lemmygrad.ml

    • OCRBot@lemmygrad.mlB
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      Could not find any images with text

      • Dhs92@programming.dev
        link
        fedilink
        arrow-up
        10
        ·
        1 year ago

        Me neither bud, me neither…

  • RustyNova@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    That’s why macro_rules!

    • beeb@lemm.ee
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      This is not rust :D Nothing will save typescript

Programmer Humor@lemmy.ml

programmerhumor@lemmy.ml

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: !programmerhumor@lemmy.ml

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.
Visibility: Public
globe

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

  • 121 users / day
  • 570 users / week
  • 1.74K users / month
  • 10.5K users / 6 months
  • 437 local subscribers
  • 35.6K subscribers
  • 1.72K Posts
  • 38.1K Comments
  • Modlog
  • mods:
  • AgreeableLandscape@lemmy.ml
  • cat_programmer@lemmy.ml
  • BE: 0.19.8
  • Modlog
  • Instances
  • Docs
  • Code
  • join-lemmy.org