Implementing Mathematica in Golang
implementing basic Mathematica in golang. great to learn from.
Expreduce by Cory Walker https://github.com/corywalker/expreduce
by the way, full version of Mathematica Wolfram lang is included free with Raspberry Pi. Raspberry Pi Kit that'd be the easiest way to learn a symbolic pattern matching language
here's what Wolfram Language looks like. note the 3 sections are syntactically equivalent. They can be transformed into each other by pressing a button. The last one, FullForm, is pure nesting of the form F[...] like #lisp. see Wolfram Language, Mathematica
“every developer should buy a copy of Mathematica, because it will expand their mind.” —#Clojure creator Rich Hickey and here's another notebook. Geometry: Plane Tiling Mathematica Package Geometry: Plane Tiling Mathematica Package
in symbolic pattern matching ruled based lang e.g. Mathematica, there is a property. for 20 years, 90s to 2000s, i don't know how to describe it. Now i know. When i first heard of “denotational semantics”, i thought that's it, but its not.
note that symbolic pattern matching (e.g. Mathematica), in not the same as those pattern matching in #ocaml or #haskell. These are not symbolic. Lisp macro, is symbolic pattern matching, but a extremely limited eedeeatic one.
in other words, in symbolic pattern matching lang, there is (basically) no concept in the lang that produces certain “object” or “compiled internal thing”. Everything, is laid out as text, like JSON.
Another way to say is, in symbolic pattern matching lang, the language is just a collection of literal expression. And its computing model is transforming these textual expressions.
If you have a question, put $5 at patreon and message me.