Live data from Hacker News

The Land of Lisp

landoflisp.com

71–80 of 146 posts

Re: The Land of Lisp

#72

When I discovered lisp several years ago, it was indeed the textbook moment of enlightenment that you've heard about. This book was a part of that introduction for me (along with Practical Common Lisp). After working in C-like languages, I had no idea that programming could work this way as in lisp, the idea of code and data being inseparable, I even had dreams at night about run-time data structures getting expresse…

My first go at lisp was working through SICP. I loved it. But I couldn't see myself using it for a medium-sized project just because static typing is that valuable to me. Now I'm learning Racket, and Typed Racket feels great so far (despite a few awkward spots). You don't have to sit on that fence; you can switch between typed and untyped code at will.

I would love to use typed racket, but I cannot really use it in the environments I program for, which are largely commercial apps on Apple platforms and mobile. If I could, I would jump to it in a heartbeat.

Re: The Land of Lisp

#74

Earlier quoted context omitted.

My first go at lisp was working through SICP. I loved it. But I couldn't see myself using it for a medium-sized project just because static typing is that valuable to me. Now I'm learning Racket, and Typed Racket feels great so far (despite a few awkward spots). You don't have to sit on that fence; you can switch between typed and untyped code at will.

> But I couldn't see myself using it for a medium-sized project just because static typing is that valuable to me. See my comment above, you can have static-typing in Lisp with no problem: Type declarations are part of the Common Lisp standard[1], and implementations like SBCL (one of the best Lisp implementations out there, and free) will do static type checking. [1] type declarations: http://clhs.lisp.se/Body/d_typ…

As with my comment about typed racket, I can't really use common lisp in my work, however clojure is very portable and I can use it (as clojurescript) as a first class language on iOS, and Mac, and the web.

Re: The Land of Lisp

#75

This book comes up in #lisp on freenode every so often, and the channel is generally split on whether or not to recommend it. I generally do. It's fun and lighthearted. Using games as a medium to teach the language is something some people enjoy, and is a lot less dry than most programming books. It avoids taking sides on the editor war, by just ignoring it altogether and teaching Lisp . This is refreshing compared t…

>The main issue people have with the book is that it uses CLISP-specific code in a few places.

This makes sense for a tutorial book, since CLISP is easy to install, very small to download (compared to SBCL), and is a fully featured (ANSI compliant) implementation. So i don't think it was a mistake to choose CLISP.

The recommendation in #lisp for SBCL over CLISP might be because SBCL is nicer to the programmer, offering more features. Also, code runs very fast under SBCL; although i suspect that CLISP compiles code faster.

(If any is interested, here is a quick overview on some of the Lisp implementations available and their salient features. (Most implementations are free)

    ECL - Embeddable Common Lisp
        allows you to compile Lisp into any 
        other system by compiling to C

    SBCL - Steel Bank Common Lisp
        Produces very fast code, 
        allows static type checking and other niceties
        a fork from the CMU CL impl.

    CLISP
        Small, easy to install and use, 
        includes readline REPL and X11 features

    ABCL - Armed Bear Common Lisp
        Allows you to run Lisp under the Java JVM 
        and call Java code, or call Lisp code from Java.

    CLASP 
        Compiles Lisp to the LLVM, provides C++ interop

    ACL - Allegro Common Lisp
        Commercial Lisp, fast, feature rich
        includes a Prolog implementation, CLIM GUI
        and other nice stuff.

    LispWorks
        Commercial Lisp, fast, feature rich,
        includes an IDE, Java Interface, 
        and CLIM 2.0 implementation, more features. 

    ParenScript
        This is a small subset of CL that gets translated
        (in the server) to javascript

    JSCL
        A Lisp implementation that runs under Javascript,
        providing a REPL and Lisp interpretation on the
        browser, for a subset of the CL language.
)

Re: The Land of Lisp

#76
post #68

This book comes up in #lisp on freenode every so often, and the channel is generally split on whether or not to recommend it. I generally do. It's fun and lighthearted. Using games as a medium to teach the language is something some people enjoy, and is a lot less dry than most programming books. It avoids taking sides on the editor war, by just ignoring it altogether and teaching Lisp . This is refreshing compared t…

> The main issue people have with the book is that it uses CLISP-specific code in a few places. CLISP's last release was seven years ago, and because it hasn't really been maintained it's beginning to bitrot. Folks in #lisp generally don't recommend using CLISP these days, instead recommending actively-maintained implementations like SBCL, CCL, ECL, ABCL, etc. Note that CLISP is actively maintained; the most recent c…

Last I heard they were looking for a maintainer: http://article.gmane.org/gmane.lisp.clisp.general/14256

Has someone stepped up?

Re: The Land of Lisp

#77
post #39

The music video is what really sold me on buying the book several years back: https://www.youtube.com/watch?v=HM1Zb3xmvMc

I don't even have to click, I remember it after all those years. Something unique in many aspects. Beware.

Re: The Land of Lisp

#78

When I discovered lisp several years ago, it was indeed the textbook moment of enlightenment that you've heard about. This book was a part of that introduction for me (along with Practical Common Lisp). After working in C-like languages, I had no idea that programming could work this way as in lisp, the idea of code and data being inseparable, I even had dreams at night about run-time data structures getting expresse…

Common Lisp:

  (defmethod collide ((object1 space-ship) (object2 rocket))
    "Inline documentation for this method..."
    (the debris
      (create-debris-from space-ship))
SPACE-SHIP and ROCKET are types and classes. DEBRIS would also be a type and a class.

Use DEFTYPE, DEFCLASS, DEFSTRUCT, ... to define new types. Use CHECK-TYPE and ASSERT to have runtime checks, integrated with the condition system.

Post reply on HN