4 ms·
Where would you recommend one starts? With Racket?
by sshine 4y ago
Where would you recommend one starts?
With Racket?
- gaze 4y agoEvery lisp variant is a bit different. Racket, Clojure, and Common Lisp are all excellent. Read a bit about the compromises and dip your toes in one and see if it sticks.
- User23 4y agoRacket has more didactic origins but I’m given to understand its a good albeit slow general purpose Lisp. Common Lisp is basically the kitchen sink programming language and with a good compiling implementation like SBCL it’s possible to write high performance code. Clojure is the Lisp that you’re most likely to get paid to write. It’s as performant as any JVM hosted language.
- bmitc 4y agoI like Racket, but it is also a kitchen sink Scheme. It has a ton of features: GUI framework, drawing (although it's slow), event spaces, places, futures, OOP, mixins, traits, macros, #langs, etc. It can get quite complex very quickly. I have mainly used it as a Scheme.
- School-Cotton 4y ago> It’s as performant as any JVM hosted language. Surely not true if you write it idiomatically using the standard “purely functional” collections.
- KingMob 4y agoNo, but it offers a lot of escape hatches to get closer to Java-level performance: transients, mutable fields with deftype, atoms, transducers to minimize intermediate sequences, type-hinting, Java interop, etc. I've seen Clojure sped up to within 20% of Java's speed, at the cost of very un-Clojure-y code.
- Keyframe 4y agoYeah, scheme will do. Racket especially since it has all things to get you started. Once comfortable, try dipping into proper CL like SBCL and then decide on a small self-designed project with a clear goal in mind. That way you'll see the struggles or lack of.
- abudabi123 4y agoLook at the two files in Kandria: ai.lisp, water.lisp. File through the Elite source code. Do tut.txt in Arc. Picture ten billion things and ChatGPT-X, Lisp interacting.
- taylodl 4y agoIt really depends on what runtime you're targeting. If you're targeting the JVM, CLR or Javascript then you might want to check out Clojure. It'll let you interoperate with libraries in each of those environments, which you'll find useful. If you're looking to create a stand-alone executable and have C/C++ libraries you'd like to use then SBCL or Racket may be more useful to you. I started with Common Lisp and PG's online book On Lisp. http://www.paulgraham.com/onlisp.html http://www.paulgraham.com/onlisp.html
- kettunen 4y agoPersonally I feel that Scheme (Racket or some other implementation) is in many ways better language compared to e.g. Common Lisp. Simpler and more intuitive (at least IMO) compared to Common Lisp which is in scale of Java or C++ when it comes to the size of the standard/language. This can be of course explained due to the nature of Common Lisp and how its, according to its standard's author, more about politics than art, since when Common Lisp was being planned they needed to accomodate many features from many different Lisps before it. But despite that, when it comes to real-world code, in my own experience, Common Lisp and especially SBCL takes the cake.
- lispm 4y agoRacket has easily the size & complexity of Common Lisp. https://docs.racket-lang.org/reference/index.html https://docs.racket-lang.org/reference/index.html I would think that it has roughly 4000 identifiers in the Racket language. See the index: https://docs.racket-lang.org/reference/doc-index.html https://docs.racket-lang.org/reference/doc-index.html Common Lisp has <1000 exported symbols in the "COMMON-LISP" package. > when Common Lisp was being planned they needed to accomodate many features from many different Lisps before it Common Lisp is mainly a slightly modernized & portable version of Lisp Machine Lisp, the feature influence of other Lisp dialects is not that big. The main difference is that Common Lisp provides lexical bindings and lacks a few features.