GoalProgramming.info
Introducing a new website, GoalProgramming.info, with documentation, cheat sheet, and example Goal code.
Daniel Gregoire
Introducing a new website, GoalProgramming.info, with documentation, cheat sheet, and example Goal code.
Small rays of sunshine: short array language programs that spark joy.
What is the Goal programming language?From Goal's README:
When I was young, my mother often repeated: "If you don't have something nice/kind to say, don't say anything at all." I often think about that at work, but in a modified way.If I have something useful, constructive, cautionary, clarifying, or propelling to provide to a discussion, then I should say something or take action. But I've caught myself many times writing up a response to a message in…
K REPL session to define an upper case function.
Leveraging these mathematical patterns with arrays as the central data structure leads to largely loopless and branchless programs, in which algorithms are distilled to a series of progressive array transformations.
The Julia programming language recently delighted me with its error message when I tried to concatenate strings.
PiLisp's pl> macro for threading expressions.
PiLisp—An interpreted Lisp inspired by Clojure
Writing small languages for enjoyment
Exploration of function arity in Clojure
One domain's metadata is another domain's data. What differentiates them is context. I argue in this post that we need to consider a new, additional source code context for our Clojure projects: in addition to the ubiquitous src and test folders, we need to add a meta folder.Metadata is data that describes a context in which the data it annotates bears significance beyond the unadorned sum of its…
Pollen is a language and set of tools implemented in Racket that support writing documents as programs. While Pollen provides a path for non-programmers to write Markdown or HTML, for programmers, the third tutorial reveals the true power of the platform, because it reveals how to extend Pollen's default document structure to support custom nodes (tags).I have recently released a Clojure library…
Clojure encourages open systems.
Clojure's destructuring helps us establish bindings to items in Clojure collections in a concise, intuitive way.
We often gain an understanding of how a code base works by making changes to it and observing the effects. When embarked upon deliberately, this takes the form of the scientific method.
As I've worked on personal software projects and contemplated how I want to capture knowledge, develop ideas, and build things, I have come to a conclusion that I want the following environment in which to do this work: