Coffeehouse Thread

50 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Lisp is friggin crazy

Back to Forum: Coffeehouse
  • User profile image
    DoomBringer

    See title.  Lisp is insane.  That is all.

  • User profile image
    Cannot​Resolve​Symbol

    Yes it is.  Supposed to be good for AI programming and stuff, though.  I haven't really tried to learn it...  Java and C# seem more natural to me, but I might end up in that situation some day (I'm a computer engineering major).

    Maybe we've got some Lisp programmers on the board?

  • User profile image
    DoomBringer

    CannotResolveSymbol wrote:
    Yes it is.  Supposed to be good for AI programming and stuff, though.  I haven't really tried to learn it...  Java and C# seem more natural to me, but I might end up in that situation some day (I'm a computer engineering major).

    Maybe we've got some Lisp programmers on the board?

    I don't see why it is supposed to be so great for AI.  It can probably do First Order Logic or predicate calculus well, but the syntax is painful. 

  • User profile image
    Cannot​Resolve​Symbol

    DoomBringer wrote:
    CannotResolveSymbol wrote:Yes it is.  Supposed to be good for AI programming and stuff, though.  I haven't really tried to learn it...  Java and C# seem more natural to me, but I might end up in that situation some day (I'm a computer engineering major).

    Maybe we've got some Lisp programmers on the board?

    I don't see why it is supposed to be so great for AI.  It can probably do First Order Logic or predicate calculus well, but the syntax is painful. 


    The list syntax (theoretically) lends itself well to metaprogramming, or making programs that write other programs, so you could have a program that dynamically rewrites itself.  The syntax is painful for humans, but a little easier for a computer to generate, supposedly.

  • User profile image
    Karim

    DoomBringer wrote:
    I don't see why it is supposed to be so great for AI.  It can probably do First Order Logic or predicate calculus well, but the syntax is painful. 


    Usually when someone uses a hammer for the first time, and they say, "Hammers are insane!  I don't see why a hammer is supposed to be so great for driving nails," you can safely assume that the hammer is being held AT THE WRONG END.

    Lisp is good for parsing and recursion.  You have to do those a lot when you are trying to get a computer to "understand" plain English sentences.  There's plenty of stuff on the net about Lisp, AI, natural language, tree parsing, computational lingustics, etc. etc.  If you don't understand why Lisp is used for AI, try holding Lisp by THE OTHER END.

    The normal first reaction to Lisp is, "Lisp is insane."

    You have two things you can do at that point.  Dismiss it, throw it aside, and never pick it up again.  You would not be the first to do this, and probably would not be the last.

    Or, you can keep at it, work with it, wrestle with it, play with it until one day the light bulb goes on over your head and you see the true ineffable beauty of Lisp.

  • User profile image
    paulo

    The CLR Garbage collectos is write in Lisp. Expressionless

    Bye

  • User profile image
    Minh

    paulo wrote:
    The CLR Garbage collectos is write in Lisp.

    Bye
    Yeah, right...
    Bye

  • User profile image
    iStation

    Have you ever used...
    C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Tool Developers Guide\Samples\clisp\clisp.htm
    ?

    Lisp is important for some math research.
    Amazon.com: Meta Math! : The Quest for Omega (Peter N. Nevraumont Books): Books: Gregory Chaitin
    http://www.amazon.com/exec/obidos/tg/detail/-/0375423133/qid%3D113028978/103-8497581-4834268
    Cool

  • User profile image
    MisterDonut

    I've used Scheme (a variety of Lisp) in some undergrad classes. I have to admit you have to Think Different (c) about it, but it's interesting. I don't see it as being very easy to debug. Everything is nested within parentheses. It's very similar to the tertiary operator of C#, if memory serves.

    It's fun as an intellectual exercise, but, that's it, as far as I'm concerned. I hope someone will correct me and elaborate, but I don't see how it lends itself to AI programing any more than, say, C#. In fact, I know of a company who specializes in AI (It's their bread and butter, complete with software patents) that was porting their AI engine from LISP into Java (they're all University Academics, and you'd have an easier time making the Pope Baptist than you would getting them to use a Microsoft product).

  • User profile image
    Lee_Dale

    i used AutoLisp in AutoCAD a few years back when i was automating some engineering drawings for a lift manufacturers, is this the same thing?

  • User profile image
    MisterDonut

    Does this make sense?

    (if ( = AutoLisp AutoCAD) Yes No)

  • User profile image
    IRenderable

    Minh wrote:
    paulo wrote:The CLR Garbage collectos is write in Lisp.

    Bye
    Yeah, right...
    Bye

    Yeah, right!
    http://dotnetjunkies.com/WebLog/sriram/archive/2005/02/23/56452.aspx

    There are lots of other sources but I just gave you the one at the top of google.

    Bye

  • User profile image
    Minh

    IRenderable wrote:
    Minh wrote:
    paulo wrote:The CLR Garbage collectos is write in Lisp.

    Bye
    Yeah, right...
    Bye

    Yeah, right!
    http://dotnetjunkies.com/WebLog/sriram/archive/2005/02/23/56452.aspx

    There are lots of other sources but I just gave you the one at the top of google.

    Bye


    Yeah right, indeed!

    I was talking to a former MSFT employee who worked on the CLR team. The conversation drifted towards languages used to implement virtual machines. Here's what I learnt.

    The CLR's Garbage Collection was initially written in Lisp by a Patrick Dussud (I can't find a blog). This code was then run through a Lisp->C converter which was then cleaned up by an intern.

    No more arguments about the practicality of Lisp from yours truly. I'm truly stunned.

    1) third-hand info
    2) how initially? prototype CLR? current CLR? what?
    3) different language now, all bets are off!

  • User profile image
    Cairo

    (meh! (lisp is (great!)))

  • User profile image
    amotif

    Karim wrote:

    The normal first reaction to Lisp is, "Lisp is insane."


    Sure, but with a hammer you have a 50% chance of grabbing the right end.
    Tongue Out

  • User profile image
    DoomBringer

    Karim wrote:
    DoomBringer wrote: I don't see why it is supposed to be so great for AI.  It can probably do First Order Logic or predicate calculus well, but the syntax is painful. 


    Usually when someone uses a hammer for the first time, and they say, "Hammers are insane!  I don't see why a hammer is supposed to be so great for driving nails," you can safely assume that the hammer is being held AT THE WRONG END.

    Lisp is good for parsing and recursion.  You have to do those a lot when you are trying to get a computer to "understand" plain English sentences.  There's plenty of stuff on the net about Lisp, AI, natural language, tree parsing, computational lingustics, etc. etc.  If you don't understand why Lisp is used for AI, try holding Lisp by THE OTHER END.

    The normal first reaction to Lisp is, "Lisp is insane."

    You have two things you can do at that point.  Dismiss it, throw it aside, and never pick it up again.  You would not be the first to do this, and probably would not be the last.

    Or, you can keep at it, work with it, wrestle with it, play with it until one day the light bulb goes on over your head and you see the true ineffable beauty of Lisp.

    With a hammer, the use is pretty easy to figure out, on a basic level, I understand "heavy thing + lever" pretty well.  Lisp on the other hand, suffers from awkward syntax.  I'm not saying Lisp sucks, but that it has issues that makes it hard to use. 

  • User profile image
    DoomBringer

    Cairo wrote:
    (meh! (lisp is '(great!)))

    fixed

  • User profile image
    McDonald

    The problem with most programmers is they don't know Lisp (or any langauge other than the C family). C++/C# stole from Lisp - catch, throw, and finally (unwind-protect in Lisp) are all Lisp concepts.

    Lisp syntax is incredibly clean and pure once you're used to it. Are you telling me that the meaning of a & 1 == 0 is clear? Initially I didn't like having to put expressions in Lisp form instead of relying on precedence, for instance x * (y + z) becomes (* x (+ y Z)). But the execution order of operations is inherently clear and operator precence is pretty artificial beyond the basic arithmetic operations.

    Then there's code/data equivalence - I can construct a list form of code and then compile it at runtime and call it. A compiler written in Lisp is incredibly simple - code generation makes use of Lisp defmacros which are functions that execute to buld code. The main body of the compiler handles jump targets and variable assignment to stack frames while code generation is repeated expansion of code macros. Declative programming is a natural concept in Lisp. Building multilayer systems is a common techniique in Lisp.

    Lisp systems, like Smalltalk, are interactive programming environments not complie.link.execute languages. C# with metadata is just scratching the surface of what can be done with Lisp's transparency of code and data.

    At a company I was at we fairly easily designed a pcode Lisp system that could be redefined while running. We tested that a number of times when we changed the underlying pcode and then recomplied the whole system creating a new copy and just garbage collected the old version away on completion. That's burning your bridge while you're walking on it.

    I could go on and on. As in my channel 9 interview developers need to open their eyes to other languages and computer science areas. The C family of languages hasn't had a new concept in 30 years and is not much of a conceptual step above assembler.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.