There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

toastal ,

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

nayminlwin ,

Too much focus on compile time.

Thcdenton ,

I don’t want to look at this anymore

clericc , (edited )

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

baseless_discourse ,

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

RustyNova ,

That’s why macro_rules!

beeb ,

This is not rust :D Nothing will save typescript

thesporkeffect ,

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 ,
@MinekPo1@lemmy.ml avatar

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.

9point6 ,

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 ,

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

algernon ,
@algernon@lemmy.ml avatar

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

Aurenkin ,

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 ,

I see what you did there

GissaMittJobb ,

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 ,

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

ris ,

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

MinekPo1 ,
@MinekPo1@lemmy.ml avatar

note that it continues onto the next line

peter ,
@peter@feddit.uk avatar

For example?

sloppy_diffuser ,

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

effect-ts.github.io/effect/effect/Unify.ts.html#u…

effect-ts.github.io/effect/…/Pipeable.ts.html

marcos ,

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 ,

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 ,

Right to jail. Right now.

Meltrax ,

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

Omega_Haxors ,

Man these programmers are getting unhinged. Even I can’t read this shit.

CannotSleep420 ,
OCRBot Bot ,
@OCRBot@lemmygrad.ml avatar

Could not find any images with text

Dhs92 ,

Me neither bud, me neither…

loaf ,
@loaf@sh.itjust.works avatar

My soul hurts

CannotSleep420 ,
  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines