Posts

⚡ v0.0.0-dev.5 — Async Iteration Arrives

  ⚡ v0.0.0-dev.5 — Async Iteration Arrives Bringing fluent, declarative power to promises and async iterables. ๐Ÿš€ What’s New The   @fizzwiz/fluent   library now supports   asynchronous iteration   with the brand-new ๐ŸŒ€   AsyncEach   class . Just like   Each ,   AsyncEach   is: Lazy   – nothing runs until you iterate. Composable   – chain transformations fluently. Declarative   – describe what, not how. But now it works directly with   promises   and   async iterables . ๐Ÿ”‘ Highlights Async pipelines : fluently compose transformations over async data. Promise bridging : work with iterables of Promises   before   they resolve. Same 9 core methods   as   Each   and   What . This release unlocks natural, fluent workflows for both synchronous   and   asynchronous data. ๐Ÿงฉ Example import { AsyncEach } from "@fizzwiz/fluent" ; const seq = AsyncEach . of ( Promise . reso...

๐Ÿงฑ v0.0.0-dev.4

๐Ÿงฑ v0.0.0-dev.4 — The Fourth Brick As with the previously undocumented   v0.0.0-dev.2-3 , this release introduces a series of small but meaningful improvements under the hood — including a cleaner project structure (no more nested   index.js   files) and the resolution of development dependency warnings during installation. From a user-facing perspective, however,   this version behaves exactly like   v0.0.0-dev.1 . No breaking changes, no new APIs — just a more solid foundation to build on. ๐Ÿงช This is a pre-release, but it's fully functional and ready to explore. Your early feedback will help shape what comes next. Start experimenting. Share your thoughts. Let’s refine it together. —   @fizzwiz ✨

๐Ÿงฑ v0.0.0-dev.1

  ๐Ÿงฑ v0.0.0-dev.1 — First Brick We’re excited to announce the very first prerelease of   @fizzwiz/fluent :   v0.0.0-dev.1   — the   First Brick   in what we hope will become a foundational library for expressive, composable iteration. This version introduces the   core abstractions : Each   — for lazy, fluent iteration. What   — for powerful search space modeling. Path   — a structural utility class essential for combinatorial workflows. These concepts form the backbone of the library and open the door to elegant patterns like   Search-and-Select ,   early restriction , and   composable iteration chains . ๐Ÿงช This is a prerelease, but it's fully functional and ready to explore. Your feedback now will help shape what comes next. Start experimenting. Share thoughts. Let’s refine it together. —   @fizzwiz ✨

⚡ Early vs. Late Restriction

  ⚡ Early vs. Late Restriction in Combinatorial Search One of the core design strengths of   @fizzwiz/fluent   is its ability to optimize   combinatorial search   through   early restriction   of the search space — a subtle distinction that can have profound performance implications. ๐Ÿšง The Problem Suppose you want to generate all paths of length 3 from the items   [0, 1] ,   without repetitions . In many libraries, you generate   all possible paths   and then   filter out   the bad ones. But   @fizzwiz/fluent   allows you to go one step better: filter the bad paths   before   they’re ever constructed. ⚙️ The Code Here’s a side-by-side comparison of   early   and   late   restriction: const // the static version of the `each()` method of the class `Each` provides a `What` of paths rather than an `Each` of arrays space = Each . each ([ 0 , 1 ], [ 0 , 1 ], [ 0 , 1 ]), // ✅ Ea...

✨ Bridging Natural Language and Code

  ✨ Bridging Natural Language and Code In both programming and human communication, the elegance of a solution often lies in its   clarity   and   simplicity . Simplicity isn’t about doing less — it's about doing what matters, cleanly and expressively. The most powerful solutions are often those that read as naturally as they execute. What if the path to such solutions already exists — not in more complex tools, but in   language itself ? ๐Ÿ’ก Programming, Meet Expression We’ve all had the experience of easily describing an algorithm in plain language, only to find the code implementation more awkward or verbose than expected. This gap between expression and execution is where inefficiencies and complexity thrive. But natural language has evolved to carry   core logical patterns   —   if ,   then ,   else ,   each ,   when ,   match . These aren't just linguistic constructs; they're   universal patterns of reasoning . T...