Wow awesome On Fri, Jul 25, 2025, 8:33 AM Douglas McIlroy <[email protected]> wrote:
> A new version of www.cs.dartmouth.edu/~doug/barem4.m4 enables > functional programming within m4. This thoroughly annotated > implementation of barem4 uses no builtin macros other than `define', > thereby demonstrating that the heart of m4 is Turing complete. In > particular, it provides conditional execution and a full complement of > arithmetic and comparison operations on unlimited-precision binary > integers. The most notable advances over the original version are > > 1. Equality testing of arbitrary identifiers, not just predefined sets > of identifiers. > > 2. Handling of encoded strings of alphanumerics. > > 3. Iteration over lists. > > 4. Higher order functions `foldl', `foldr', and `zip' inspired by Haskell. > > 5. More exploitation of m4 to generate code for itself. > > A test suite, www.cs.dartmouth.edu/~doug/testbarem4.m4 accompanies the > file of m4 definitions. > > Building on barem4, Eric Blake has made a simulator of an "intcode" > computer capable of running impressive applications. > > Doug > >
