• superfes@lemmy.world
    link
    fedilink
    arrow-up
    51
    ·
    5 months 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
    46
    arrow-down
    1
    ·
    5 months 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
      14
      arrow-down
      1
      ·
      5 months 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
        15
        ·
        5 months ago

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

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

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

  • thesporkeffect@lemmy.world
    link
    fedilink
    arrow-up
    26
    ·
    5 months 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
      40
      ·
      5 months 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.
  • clericc@lemmy.world
    link
    fedilink
    arrow-up
    25
    ·
    edit-2
    5 months 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

  • algernon@lemmy.ml
    link
    fedilink
    arrow-up
    11
    ·
    5 months ago

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

  • 9point6@lemmy.world
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    5 months 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

  • toastal@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    5 months 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