Herd Programming Language: A Pass-by-Value Interpreted Language for Hobby Projects
By
jcparkyn
The kind of bagel that ruins lesser bagels for you.
Summary
Herd is a hobby programming language where everything is pass-by-value, including complex data structures like lists and dictionaries. This design guarantees that functions cannot modify the original copies of data passed to them, eliminating side effects while still allowing local variable modification. The language is interpreted and designed for simplicity, with the creator explicitly noting it's not intended for production use.
Key quotes
· 5 pulledHerd is a simple interpreted programming language where everything is a value.
In Herd, everything is pass-by-value, including lists and dicts.
This means that when you pass a list or dict to a function, you can guarantee that the function won't modify your copy.
Disclaimer: This is a hobby language, and you probably shouldn't use it for anything important.
You can modify variables locally just like you would in an imperative language, but there will never be any side-effects on other copies of the value.
You might also wanna read
Dynamic Borrow-Checking in a Toy Programming Language: Implementing Rust-like Memory Safety Without Static Types
This article presents a demonstration of a toy programming language that implements borrow-checking without static type-checking. The langua
C++26 Standard Draft Finalized with Reflection, Memory Safety, Contracts, and New Concurrency Framework
The C++26 standard draft has been completed, introducing major new features including reflection capabilities that allow C++ to describe its
Understanding Fil-C: A Simplified Model of Memory-Safe C/C++ Implementation
The article presents a simplified model of Fil-C, a memory-safe implementation of C/C++. It explains that while the real Fil-C uses a compil
Sky: An Experimental Elm-Inspired Programming Language That Compiles to Go
Sky is an experimental programming language that combines Go's pragmatism with Elm's elegance to create a fullstack functional programming l
Analyzing Rust's Coherence and Orphan Rules: Ecosystem Development Challenges and Proposed Solutions
This article critiques Rust programming language's coherence rules and orphan rules, which prevent implementing traits for types defined in
SBCL Fibers: Implementation Design for Lightweight Cooperative Threads
This is a draft design document describing the implementation of lightweight userland cooperative threads (called 'fibers') for SBCL (Steel
