fp-ts brought advanced #FunctionalProgramming to #TypeScript. Now a related project implementing an effect system for TypeScript (effect-ts) seems to have gotten a lot of VC money. Interesting... Docs look very polished, not sure how they will make money though.
Phew... One key step closer to replicating & simplifying core https://thi.ng/rstream functionality via just standard async iterables: Just added a mult() base-operator to https://thi.ng/transducers-async [1] which allows splitting a single async iterable into multiple child async iterables (aka subscriptions, aka 1:N splitting), each of which can be added/removed dynamically and individually processed e.g. via transducers, vanilla for await() consumers, and/or used as input for downstream mult()s to construct entire graph topologies (cycles allowed) of async processors etc. Back pressure is handled by waiting for all child subscriptions to deliver the value before consuming a new one from the source...
For @made and others who might have questions about the new https://thi.ng/transducers-async library, I've tried to illuminate the behind-the-scenes approach over here:
For real, whoever is saying that F# or OCaml require a PhD in Math or are languages just for math, science, and academic stuff is completely lying to you, it is no harder than learning JavaScript/python or any other language out there.
The map() function applies a function across vectors, lists, or data frames efficiently. Syntax: map(.x, .f, ...) where .x is data, .f is function, ... for extra args. Examples: square vector elements via ~.x^2, get means of column across list of data frames with ~mean(.x$y), apply custom functions to rows/cols like df$z <- map_dbl(df, add_cols).
But I find such articles ridiculously hard to understand, especially system F (although I have been coding in #haskell for years).
Ironically, dependently-typed seem much simpler. In non-dependently-typed systems it's very hard to pinpoint the connections between types and terms. In dependently-typed systems, terms and types are the same thing.
"to craft a modern, direct-style I/O stack that seamlessly interfaces with the latest kernel I/O advancements, such as io_uring. This is where Eio comes in."