Monads and Macros
Monads and macros have an almost gnostic mystique about them. Why is that? Why does hardly anyone use both?
Topics /
The most popular blog posts about programming languages on Hacker News. 5,634 posts.
Monads and macros have an almost gnostic mystique about them. Why is that? Why does hardly anyone use both?
I'm happy to announce Clojure/core , a joint endeavor between myself and Relevance, Inc. Clojure/core is a specialized technical practice w...
Exploring Lisp's fine-grained type hierarchy.
It’s has been an absolute pleasure 2 working with Chouser 3 and our army of Manning 4 editors and proofreaders. I would also like to thank Christophe Grand for his excellent 5 technical review. Additionally, I would like to thank Steve Yegge for writing the foreword and providing insightful feedback 6 that I believe…
Introduction
A somewhat compact implementation of the awk programming language
The first of a series of envisioned blog posts on lambda calculus, and Lisp. It’s unclear exactly where to start: there is a whole heap of interesting issues, both theoretical and in terms of concrete implementations, which tangle and interconnect. A particular application of lambda calculus is a very salient…
Zig is a general-purpose programming language and toolchain for maintaining robust , optimal , and reusable software.
Diagnostics play a very important role in a programming language experience. It’s vital for developer productivity that the compiler can produce proper guidance in any situation, especially incomplete or invalid code.
It’s hard to believe that its been more than 3 years since I opened RFC 2000 , which defined the const generics for Rust. At the same time, reading the RFC thread, there’s also been a huge amount of change in this area: for one thing, at the time the RFC was written, const fns weren’t stable, and consts weren’t even…
And lived to tell the tale.
The execution of a program unfolds over some interval of time. The lifetime of every temporary resource (e.g., variable or object) is the time span between that resource’s “creation” and “destruction”. This lifetime is wholly contained within the typically-longer lifetime of the program.
I’ve been telling people for the last 25 years that Jane Street as an organization was just not interested in formal methods.
We build transformative solutions for the world’s most ambitious companies. We're experts at building massively scalable, distributed systems.
We had a great talk with Jeffrey Snover, Microsoft Technical Fellow and CTO for Modern Workforce Transformation. Snover is the inventor of Windows PowerShell, an object-based distributed automation engine, scripting language, and command line shell. Enjoy full interview on our website.
The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1] . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since…
Why unsafe Rust is a complex and user unfriendly experience.
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
How (and why!) to convince the machines to write lenses for you
Three years ago, I downloaded the nascent Scala.js compiler and tried to use it on a toy project.
Latches and barriers are coordination types that enable some threads to wait until a counter becomes zero. You can use a std::latch only once, but you can use a std::barrier more than once. Today, I have a closer look at latches.
Rama is a platform with huge applicability, able to express all the computation and storage for a backend at any scale. Just like the UNIX philosophy of composing simple programs to do more complex…