you are viewing a single comment's thread
view the rest of the comments
[–] 42 points 1 year ago (4 children)

Lisp uses it, with the fun extra part that operators are just normal functions - so instead of foo(bar) you get (foo bar), or for operators 1+1+2 becomes (+ 1 1 2). It’s a really fun language even just for being different than most, I def recommend playing around with it if you’re looking for something new.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 14 points 1 year ago (3 children)

    The most interesting part about Lisp is homoiconicity:

    (+ 1 1 2) is literally a list with symbol "+" and 3 numbers.

    Which allows to build the most powerful macro possible, manipulating code (with data as a tree-like structures) and changing it into whatever else at compile time.

    Now if only there was any good use for macros, this would be the best language 🙃

  • source
  • parent
  • hideshow 3 child comments
  • [–] 11 points 1 year ago (2 children)

    Threading is a great case for a macro.

    (-> x (* 2) (/ 3) (- 1))

    Is the same as (- (/ (* x 2) 3) 1)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 1 year ago (1 child)

    Sure it's not like it has no uses, but it's something languages have built-in as syntax sugar or operators, and you rarely need to built your own macro for anything.

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (-1 replies)