Show HN: Term-Lisp – A Lisp, based on pattern matching and term rewriting

boris_m | 55 points

I'm really annoyed when lisp languages use infix operators. Is it really so hard to write (= (f a) b) over (f a = b)? In fact, can you even call it lisp if the first element of the list isn't the operation of that list? Perhaps if they had a special bracket type for definitions I would be more amenable to it, but the idea that a symbol half way through a list completely changes its meaning simply doesn't sit right with me. Isn't this just a term rewriting system with an extra pair of parentheses?

Also, why is this needed over the second line?

  (map a (:lambda fun) = fun a)
  (map a fun = fun a)
James_K | 3 hours ago

Term re-writing systems are a really interesting way of looking at computation.

It completely abstracts away the concept of a machine, and it's simply translation as computation - but equally as powerful.

BoiledCabbage | 9 hours ago

This is vastly more pattern matching than term rewriting. In a term rewriting system you have no types for a start: https://en.wikipedia.org/wiki/Rewriting

llm_trw | 8 hours ago

Marty Alain's Lambdaway is another term-rewriting evaluator, of sorts.

kazinator | 3 hours ago