Should I learn Lisp? I'm going to read SICP and want to know if I should try to...

Brayden Fisher
Brayden Fisher

Should I learn Lisp? I'm going to read SICP and want to know if I should try to further myself. Also, what dialect, Common Lisp or Scheme?

Attached: Lisplogo.png (29 KB, 811x805)

Other urls found in this thread:

github.com/positronic-solutions/pulley.cps
en.wikipedia.org/wiki/Greenspun's_tenth_rule
github.com/CodyReichert/awesome-cl/blob/master/README.md
portacle.github.io

Angel Taylor
Angel Taylor

Don't read SICP. Read David Touretzky's book about Common Lisp. You will turn into a wizard.

Nathaniel Ross
Nathaniel Ross

No. It's slow as fuck. If you must, learn Scheme. If you think (insert language here) is bloated, you haven't seen Common Lisp.

Hudson Lopez
Hudson Lopez

common lisp is dead, scheme dialects are at least extant
but clojure is unfortunately the most practical lisp today

Oliver Phillips
Oliver Phillips

Use Steel Bank Common Lisp (SBCL). Common Lisp is dead, but SBCL is regularly updated and fast.

Cameron Bailey
Cameron Bailey

Should I learn Lisp?
yes
I'm going to read SICP
Good, it's still relevant, especially if you're not a dummy.
Common Lisp or Scheme?
Do SICP in Scheme, but for real world applications use Clojure.
unfortunately
Why?

Nicholas Morris
Nicholas Morris

clojure isn't as elegant as scheme

Jordan Watson
Jordan Watson

but it runs on the jvm and that's all that matters.

Andrew Murphy
Andrew Murphy

I used to think so before I started working with Clojure. Didn't like all the added types of parens, def instead of define, that lambda is fn, etc.
I have to say I changed my mind and now think Clojure is the best lisp. The abstractions are better, you have true immutability, structural sharing, excellent concurrency syntax and polymorphism.
Is it a good thing or a bad thing in your opinion?

Liam Reyes
Liam Reyes

Learning Lisp is good, because it gets you really, really used to lambdas and closures, and that's gonna make writing good multithreaded and asynchronous code a lot easier.
And honestly, it's just plain fun! Lisp's expression-based, so you can compose basically any two constructs in any way you can imagine. Means it's crazy flexible, and you can have a lot of fun slotting things together in weird ways and having them work.

Nathan Jones
Nathan Jones

It can only be a good thing when it comes to the real world because people consider Java like the fucking savior of humanity, so learning programming languages that interact with the JVM is really good when it comes to deployment. VMs are the future when it comes to infrastructure and deployment, so learning a language that interacts with the JVM, ANY LANGUAGE, can only be good. And even if somehow the JVM fails, you have other JVM projects like GraalVM that are starting to gain some tractions because people are understanding that it makes deployment really easy.

We're starting to live in the future with that shit. Slowly but surely. This can only be the future!

Owen Morgan
Owen Morgan

racket because the others have absolute trash development environments and/or libraries

Hudson Scott
Hudson Scott

Ironically, because people thought Java was all the rage, so many engineering hours were spent on the JVM that shit is actually good. Supposedly it has excellent GC, JIT compilation and dynamic analysis and optimization, so if you're able to write in a language which isn't insufferable but takes advantage of the JVM, why the fuck not?
It also keeps management monkeys happy if you give them jars instead of scray binaries from "obscure" languages.
Clojure has excellent DEs and libs.

Luis Jackson
Luis Jackson

no reader macros
no proper tail recursion
how can you even call that a lisp

go back to your java overlords

Chase Jackson
Chase Jackson

As Rich Hikey said "It's okay to love the JVM and hate Java at the same time". The JVM and other VMs are the future of programming and investing your time in that shit is going to skyrocket careers. Calling it now.

Nathaniel Martin
Nathaniel Martin

Attached: seqs.png (516 KB, 728x2184)

Michael Taylor
Michael Taylor

note that lazy-cons was replaced by lazy-seq before version 1.0 was released

Lucas Rivera
Lucas Rivera

no reader macros
I thought we have them. Maybe it's a distinction I'm not getting. Could you provide an example?
no proper tail recursion
That's on the JVM but the second they'll add it you'll get in in clojure.
In the meanwhile Hickey cheated and wrote recur which basically does the same thing. You have to ask at some point of there's even a difference, functionally.
how can you even call that a lisp
what are your criteria for a lisp?
go back to your java overlords
RUDE!
Never written a line of Java in my life, desu.
So are you telling all the purists to... have seqs?

Asher Reyes
Asher Reyes

no tail recursion
We usually don't need it thanks to lazy seqs and recur, but there is a library for it:
github.com/positronic-solutions/pulley.cps
Java
I don't want to write Java but it's sweet relying on statically typed dependencies.
reader macros
I think other lisps lets you read the form character by character in an additional macro processing step... I guess? IIRC, Rich doesn't want this because he thinks it would make it harder for people to collaborate on a common basis.
have seqs
haha

Tyler Hill
Tyler Hill

I have to admit I never got deep into Common Lisp. Scheme seems so much cleaner. Clojure even more so.

I agree with the general sentiment that the JVM is a nice vehicle for Clojure. It's just a pity that startup is so slow.
This is also true for the Clojurescript variants. That basically means I will not use it for my personal projects until the GraalVM really takes off.
Maybe I'll have a look at Joker or one of the other variants.

But back to the OP, just learn Scheme for now. Racket is a good place to start. It is slightly incompatible with SICP because cons is not mutable (they have mcons for that).
But many of the things you build along the way (especially streams, chapter 3) are available in the standard library for you to play around with after learning about them.
In any case, make sure to do the exercises (even if the first two chapters might seem boring) and preferably pick some small project to work on. Perhaps one year in Advent of Code or some other coding puzzles.

Hudson Barnes
Hudson Barnes

Regarding startup times, Clojure shines in programs which run for days, so the startup time doesn't really matter there. If you want to run it for short passes, why not compile it with Graal?

Nolan Martin
Nolan Martin

Yeah I agree with Clojure is at its best when you use it for server back-end and shit because the startup time LITERALLY doesn't matter one iota. Plus one the start-up is done the program is usually lightning fast. It's an excellent tradeoff. You obviously don't script with Clojure.

Nicholas Miller
Nicholas Miller

it's totally not bloated

Henry Hughes
Henry Hughes

No. It's slow as fuck
If you think (insert language here) is bloated, you haven't seen Common Lisp.
common lisp is dead

Kek.

Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.
- en.wikipedia.org/wiki/Greenspun's_tenth_rule

Attached: redpilled-language.jpg (50 KB, 829x520)

Noah Wright
Noah Wright

compiled languages are faster than vm languages
stop the fucking presses!

Ian Gutierrez
Ian Gutierrez

wtf, clojure is great

Carson Phillips
Carson Phillips

Learn Common Lisp. It's a pretty good language and has a variety of implementations that are compatible with each other, something Scheme lacks. SBCL is the most popular one, but there are also implementations that compile to C or run in the JVM.
Here's some resources to give you an overview of what you can do and where to start.
github.com/CodyReichert/awesome-cl/blob/master/README.md
And if you don't want to fiddle with Emacs and want to jump straight to learning you can use portacle.github.io to get a complete environment for Lisp.

Jace Foster
Jace Foster

so what JVM languages should one learn beside Java? Is python viable

Disable AdBlock to view this page

Disable AdBlock to view this page

Confirm your age

This website may contain content of an adult nature. If you are under the age of 18, if such content offends you or if it is illegal to view such content in your community, please EXIT.

Enter Exit

About Privacy

We use cookies to personalize content and ads, to provide social media features and to analyze our traffic. We also share information about your use of our site with our advertising and analytics partners.

Accept Exit