Profile avatar
debasishg.bsky.social
Programmer. Author: Functional and Reactive Domain Modeling (Manning 2016), DSLs In Action (Manning 2010). Father. Husband. Seinfeld fanboy. FP aficionado.
178 posts 537 followers 115 following
Prolific Poster
Conversation Starter
comment in response to post
I think flat structures are becoming more popular for being more cache friendly on modern CPU architectures. Data oriented design is also aligned well with this principle ..
comment in response to post
You can compose applicative using the <*> operator in Haskell. The best part is you can compose independent effects statically unlike monads where the compositions are dependent and hence need to be evaluated. Oh and you can also have the do-notation for Applicatives (dl.acm.org/doi/10.1145/...)
comment in response to post
The best part of this policy based design is avoiding the runtime cost of virtual functions and allowing the compiler to be able to optimize each of the generated hash tables individually. (2/2) Link to the blog post: clickhouse.com/blog/hash-ta...
comment in response to post
I think the Red book (Functional Programming in Scala) has a Scala 3 version .. reading Kyo source code is also a good education ..
comment in response to post
c. the effect `-S` is in a contra variant position which gives automatic effect widening (you can also pass in computations with a smaller set of effects—or even a pure value—and they will be automatically widened to fit the expected type) (3/3)
comment in response to post
Here's an example effect in Kyo.. `Int < (Options & Abort[Exception])` Here's how it exploits the power of the type system a. produces an `Int` with pending effects `Options` and `Abort` b. uses the intersection type of Scala 3 (`&`), which means the effect list can be unbounded and unordered (2/3)
comment in response to post
The problem is `that` runs even if `this` runs successfully .. note : `that` is not a by-name parameter .. so u end up running both. Imagine if the futures were side-effecty, which they usually are used for ..
comment in response to post
In this paper he discusses a functional solution to the problem using a queue based model in SML. The paper also discusses some of the lessons learnt in the process of the design of the algorithm Breadth-First Numbering: Lessons from a Small Exercise in Algorithm Design - dl.acm.org/doi/pdf/10.1...
comment in response to post
some interesting links related to the talk: 1. The talk on YouTube - youtube.com/live/au26uZf... 2. Wikipedia page on Weak Component - en.wikipedia.org/wiki/Weak_co... (very informative with updates from David Eppstein) (6/6)
comment in response to post
Towards the end he had some nice factoids about his interaction with Dijkstra where he mentioned that "his strength was his inability to compromise". (5/6)
comment in response to post
Besides the explanation of the core algorithm he narrated quite a few of very nice anecdotes regarding the evolution of the algorithm, the various journals and papers where the algorithm or its related topics were discussed around 1972-74. (4/6)
comment in response to post
And he has narrated the whole algorithm along with the detailed analysis in one of the pre-fascicles of his upcoming volume (Volume 4, Pre-fascicle 12A). (3/6)
comment in response to post
Became aware of the deep appreciation that he holds for the algorithms for strong components and weak components that Bob Tarjan had invented. In fact he mentioned that over the last 2 years he had worked with Bob to improve and optimise some parts of the algorithm. (2/6)
comment in response to post
Merry Christmas Miles! Hearing from you after a long time ..
comment in response to post
That would be wonderful ..