Re: What defines *really* knowing Lisp, in your opinion?



jonathon wrote:
Robert Strandh wrote:

I am not sure about the motivation for your question.  Would you like
for someone to tell you that you can safely ignore some features and
still "really know Lisp"?  In my opinion, that is not a good idea.

My motivation is as I learn the language, I will have ways to measure my progress and plan my next goal to achieve. Since the language and the techniques that come with it can be so different from those I know now, I think this would be helpful.

I don't think you can really learn Lisp (or much of anything) in such a piecemeal fashion. You need to learn just enough about the different parts of Lisp to know how to use them, and then practice, practice, practice, practice, practice.


Learn enough about macros to feel that you could write many of the macros that are already in COMMON-LISP. In particular, DOLIST, DO*, DO, and LET* are good practice macros.
Learn enough about closures to understand how FLET, LABELS, and LAMBDA all work.
Learn enough about CLOS to understand how you write OO software in it, and how generic functions are more powerful than virtual functions.


Then start writing actual software, with an eye toward removing code duplication. This is the most important step. Lisp's features allow you to abstract away patterns in simple, direct, yet fast ways that no other language has.

  -- MJF
.



Relevant Pages

  • Re: Paul Grahams teaching style is bad
    ... > remaining distinctive features of lisp are a good thing. ... > languages have been picking up from lisp for so long was the big deal, ... > and that macros are only marginally important by comparison, ...
    (comp.lang.lisp)
  • Re: Lisp article at IBM
    ... I suppose any publicity is good publicity, ... It disregards the most important features of Lisp to ... Macros get two paragraphs and one bizarre code snippet: ...
    (comp.lang.lisp)
  • Re: Hey! Everybody! Nice to meet you all here!
    ... I think this is a misconception, based on two important features of Lisp: ... The other feature are macros: Unlike in other languages, ... don't know a usecase for expanding macros at runtime, ...
    (comp.lang.lisp)
  • Re: Beyond CL?
    ... But there is a difference between forciing ANSI-style standards on people and offering consistent way of doing things they find interesting. ... Maybe all it needs is for somebody to assemble a reasonably large collection of good stuff and position it as "a bunch of stuff aimed at Lisp Newbies to help them do useful stuff faster". ... It actually took some 15 years, or so, to be finalized, although almost all of the features were already available in some form or the other. ... What happens in a lot of other places is that things get standardized without any, or with very little evidence that they actually work in practice. ...
    (comp.lang.lisp)
  • Re: Lisps future
    ... It seems to me that facilitating a bad practice is bad, period, end ... The way Lisp makes changing your code ... Having type inference ...
    (comp.lang.lisp)