this post was submitted on 15 Dec 2023
10 points (100.0% liked)

Lisp Community

682 readers
1 users here now

A community for the Lisp family of programming languages.

Lisp (historically LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1958, Lisp is the second-oldest high-level programming language. Only Fortran is older, by one year.

History

Associations and meetings

Resources - TODO

Related communities (dialects) - TODO

founded 5 years ago
MODERATORS
 

This is another Friday social topic. You are aimlessly wandering around a beautiful hilltop by a sea when an angel approaches you from the opposite direction. She is no ordinary angel. She is a Lisp angel! She will grant one Lisp wish to you. Before she can fulfill your wish, she needs this information from you:

  1. Your favorite Lisp dialect.
  2. Your favorite non-Lisp programming language.
  3. Your favorite standard library function/macro/feature from your favorite Lisp dialect that you want to see in your favorite non-Lisp programming language.

Once you tell these 3 things to the angel, she will magically add your chosen feature to your chosen non-Lisp programming language.

What are your answers going to be?

top 7 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 10 months ago

Favorite lisp is common lisp. Favorite other is rust. S expression syntax. If rust had the simple syntax and s expressions of lisp... I'd be so happy.

[–] [email protected] 2 points 10 months ago* (last edited 10 months ago)
  1. "favorite Lisp dialect": Scheme (Guile, Gambit, and MIT/GNU)
  2. "favorite non-Lisp programming language": Haskell
  3. "favorite standard library function/macro/feature": homoiconicity, i.e. both code syntax and data structures built from S-expression, which makes features like syntax-case feature possible, and the ability to implement declarative domain specific languages with Haskell-like type checking on large parts of your program at compile time. If every language would like this, my life would be soooo much easier and less stressful.

One thing I hate about other languages is complicated syntax that makes it difficult or impossible to do macro-programming. S-expressions are a minimalist syntax that allows lisp to be well-adapted to most any use case, and features like defmacro or syntax-case are very well designed mechanisms for doing exactly that. Other languages like Python and JavaScript have macro-programming implementations but they are so hacky and not very well designed compared to most Lisps, which have the feature built right into the language.

[–] [email protected] 2 points 10 months ago

@cadar s-expressions!

[–] [email protected] 1 points 10 months ago* (last edited 10 months ago) (1 children)
  1. Common Lisp
  2. Haskell I guess
  3. defmacro. This would probably involve changing the syntax to list form like axel does.
[–] [email protected] 1 points 10 months ago (1 children)

Haskell has macros under the name of Template Haskell

[–] [email protected] 2 points 10 months ago

True. They are not near as nicely integrated as lisp macros though.

[–] [email protected] 1 points 10 months ago
  1. Scheme
  2. Zig
  3. (let loop ((...)) (cond ...))

I love how recursive looping reads and unfortunately there aren't many languages implementing this approach.