Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Does anyone code with LISP?

Does anyone code with LISP?

Scheduled Pinned Locked Moved The Lounge
comquestionlearning
63 Posts 25 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Reese Currie

    I program in Emacs Lisp (ELisp) all the time, and love Lisp in that application, so much that I would like to use Lisp for other things. However, I've only used Common Lisp a little bit, for very small things, and almost always opt for something else when I have something that needs to get done. I think the difference is the "atoms". The atoms in Emacs Lisp are geared for text processing and it makes Emacs a very effective text processing framework, for me, anyway. Apparently only 1% of Emacs users actually write ELisp. Common Lisp I guess just doesn't appeal to me as a general purpose language, because in my limited experience with it, the atoms just don't do it for me. Maybe if I gave it a harder push, but in the presence of other options, I tend toward the other options. I would not discourage you from learning Lisp, because it changes how you think about programming and yes, will make you a better programmer in any language for the experience. If you google Paul Graham, he provides some advantages of Lisp; he used it to write I believe Yahoo's Shopping Cart. A more interesting story for me can be found if you google "Lisping at JPL".

    J Offline
    J Offline
    JimmyRopes
    wrote on last edited by
    #44

    Thanks for the insight.

    The report of my death was an exaggeration - Mark Twain
    Simply Elegant Designs JimmyRopes Designs
    Think inside the box! ProActive Secure Systems
    I'm on-line therefore I am. JimmyRopes

    1 Reply Last reply
    0
    • R Rowdy Raider

      Not personally but my brother does. There are certain types of research and engineering problems that LISP handles well (which is the type of work he does). The language is fully recursive in nature so imagine using it to solve a problem which is also recursive in nature.

      J Offline
      J Offline
      JimmyRopes
      wrote on last edited by
      #45

      Thanks for the information

      The report of my death was an exaggeration - Mark Twain
      Simply Elegant Designs JimmyRopes Designs
      Think inside the box! ProActive Secure Systems
      I'm on-line therefore I am. JimmyRopes

      1 Reply Last reply
      0
      • M musicm122

        You could do some Clojure or Iron Scheme which are both considered dialects of Lisp. Also I'd check out Lisp in the real world. Also these

        • http://c2.com/cgi/wiki?CommercialLispApplications[^]
        • https://programmers.stackexchange.com/questions/55284/is-lisp-still-useful-in-todays-world-which-version-is-most-used[^]
        • https://en.wikipedia.org/wiki/Category:Common_Lisp_software[^]

        I haz a Blog. It is Delicious.

        J Offline
        J Offline
        JimmyRopes
        wrote on last edited by
        #46

        Thanks for the links.

        The report of my death was an exaggeration - Mark Twain
        Simply Elegant Designs JimmyRopes Designs
        Think inside the box! ProActive Secure Systems
        I'm on-line therefore I am. JimmyRopes

        1 Reply Last reply
        0
        • A Alan Balkany

          Haven't used it since my Artificial Intelligence term project in grad school. It was a frame-based system for playing chess endgames. The ability to treat LISP code as objects was convenient for this application. Haven't had the opportunity or inclination to use it since then.

          J Offline
          J Offline
          JimmyRopes
          wrote on last edited by
          #47

          Thanks for the information.

          The report of my death was an exaggeration - Mark Twain
          Simply Elegant Designs JimmyRopes Designs
          Think inside the box! ProActive Secure Systems
          I'm on-line therefore I am. JimmyRopes

          1 Reply Last reply
          0
          • J JimmyRopes

            If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?

            The report of my death was an exaggeration - Mark Twain
            Simply Elegant Designs JimmyRopes Designs
            Think inside the box! ProActive Secure Systems
            I'm on-line therefore I am. JimmyRopes

            B Offline
            B Offline
            bwallan
            wrote on last edited by
            #48

            Lost In Stupid Parentheses (LISP)... Yes, I did use LISP about 20+ years ago. Didn't know it was still used or even known!?

            J 1 Reply Last reply
            0
            • J JimmyRopes

              If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?

              The report of my death was an exaggeration - Mark Twain
              Simply Elegant Designs JimmyRopes Designs
              Think inside the box! ProActive Secure Systems
              I'm on-line therefore I am. JimmyRopes

              U Offline
              U Offline
              User 8162794
              wrote on last edited by
              #49

              After reading through some of the other comments, these things come to mind: 1. I agree, after learning Common Lisp for a few days, I was like "What on earth will I ever use this for?" 2. After spending a couple of days with Clojure, I was like, "Oh man, I wish I could use this to write ALL of my code!" So if you're going to look into it, I can personally recommend Clojure for the following reasons: 1. It's fun (at least in my opinion) 2. It will absolutely change the way you think about programming (even in OO contexts) 3. It's a JVM language, so you can use it along with Java code (or Scala, or Groovy, or ...) 4. You have the functional paradigm (it's a LISP dialect) but you can also do object-oriented things (it runs on the JVM) if that makes sense for the situation. 5. It IS in active use in a number of projects today (though I can't remember them off the top of my head; that's fine, go ahead and call me out for that; or better yet, just google it) 6. It has an active user community. I've always found answers to my questions on Stack Overflow. As for why to learn functional programming in general, I agree with one of the posters who said that it increases his productivity. In my experience, functional programs are easier to reason about. If you can break your entire program down into a set of small functions, you can test each of the functions individually. (If you put in the same arguments you should always get the same result.) If you can determine that each of your smaller functions is logically correct, then it becomes easier to reason that your full program is logically correct. And if your program has fewer bugs, you won't spend as much time debugging. Thinking functionally requires me to think more about what I want to DO, and much less about HOW I want to do it. (I know everyone says that about functional languages, but it is true in my experience!) I have also found that my programs in Clojure are more concise than what I write in other languages. This is partially due to the syntax (come on, guys, the parentheses really aren't that bad; Emacs formats it REALLY nicely) but it is also due to the functional paradigm---it just forces you to think straight to the point of what you're trying to do. Having a REPL (Read-Eval-Print Loop) is EXTREMELY helpful in learning a new language. Try stuff out in real time in the interpreter (just like with Python, etc.) Decreases the amount of time to master a given concept, in my opinion. Because of this

              J 1 Reply Last reply
              0
              • J JimmyRopes

                If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?

                The report of my death was an exaggeration - Mark Twain
                Simply Elegant Designs JimmyRopes Designs
                Think inside the box! ProActive Secure Systems
                I'm on-line therefore I am. JimmyRopes

                M Offline
                M Offline
                mattyltaylor
                wrote on last edited by
                #50

                Hi, I've used AutoCAD for 20+ years. For almost all of those I've used AutoLISP to get AutoCAD to do what I want it to. It's obviously not Common Lisp, but I've found it to be extremely useful when trying to automate tasks. In AutoCAD you can almost use it as a scripting language - it's easy to make changes on the fly (no code compilation required). I've never touched Common Lisp though! Cheers.

                J 1 Reply Last reply
                0
                • J JimmyRopes

                  Mike Hankey wrote:

                  after about 2 days I think what the hell would I do with it?

                  That is what has stopped me so far, what can I do with it? Sorry to hear your beagle is sick.

                  The report of my death was an exaggeration - Mark Twain
                  Simply Elegant Designs JimmyRopes Designs
                  Think inside the box! ProActive Secure Systems
                  I'm on-line therefore I am. JimmyRopes

                  M Offline
                  M Offline
                  Mark Whybird
                  wrote on last edited by
                  #51

                  This guy did real stuff with it: http://www.paulgraham.com/avg.html[^] It helped him make money, too.

                  J 1 Reply Last reply
                  0
                  • J JimmyRopes

                    If so, what are the advantages over other programming languages. I always hear it mentioned when reading about programming theory, but never had the opportunity, or inclination, to try it out because I was busy learning other languages for which I was getting paid. Is there anything I can learn from getting familiar with LISP or is it a language that was once ahead of it's time but now relegated to the annals of 20th century computer history?

                    The report of my death was an exaggeration - Mark Twain
                    Simply Elegant Designs JimmyRopes Designs
                    Think inside the box! ProActive Secure Systems
                    I'm on-line therefore I am. JimmyRopes

                    M Offline
                    M Offline
                    Member 4608898
                    wrote on last edited by
                    #52

                    Anyone who use emacs or works with HLA (a lot of the defence simulation industry) or one of the SAFs (modsaf, onesaf etc) will use lisp as the configuration language. They won't call it lisp: they will give it some configuration language name but it is still lisp in syntax. Do you use lambda functions? They started in lisp.

                    J 1 Reply Last reply
                    0
                    • B bwallan

                      Lost In Stupid Parentheses (LISP)... Yes, I did use LISP about 20+ years ago. Didn't know it was still used or even known!?

                      J Offline
                      J Offline
                      JimmyRopes
                      wrote on last edited by
                      #53

                      bwallan wrote:

                      Didn't know it was still used or even known!?

                      I was reading something written by Alan Kay[^] and he mentioned LISP as being the best computer language. It was probably written many years ago. It got my curiosity up about if it was still used and if it was worth learning.

                      The report of my death was an exaggeration - Mark Twain
                      Simply Elegant Designs JimmyRopes Designs
                      Think inside the box! ProActive Secure Systems
                      I'm on-line therefore I am. JimmyRopes

                      B 1 Reply Last reply
                      0
                      • U User 8162794

                        After reading through some of the other comments, these things come to mind: 1. I agree, after learning Common Lisp for a few days, I was like "What on earth will I ever use this for?" 2. After spending a couple of days with Clojure, I was like, "Oh man, I wish I could use this to write ALL of my code!" So if you're going to look into it, I can personally recommend Clojure for the following reasons: 1. It's fun (at least in my opinion) 2. It will absolutely change the way you think about programming (even in OO contexts) 3. It's a JVM language, so you can use it along with Java code (or Scala, or Groovy, or ...) 4. You have the functional paradigm (it's a LISP dialect) but you can also do object-oriented things (it runs on the JVM) if that makes sense for the situation. 5. It IS in active use in a number of projects today (though I can't remember them off the top of my head; that's fine, go ahead and call me out for that; or better yet, just google it) 6. It has an active user community. I've always found answers to my questions on Stack Overflow. As for why to learn functional programming in general, I agree with one of the posters who said that it increases his productivity. In my experience, functional programs are easier to reason about. If you can break your entire program down into a set of small functions, you can test each of the functions individually. (If you put in the same arguments you should always get the same result.) If you can determine that each of your smaller functions is logically correct, then it becomes easier to reason that your full program is logically correct. And if your program has fewer bugs, you won't spend as much time debugging. Thinking functionally requires me to think more about what I want to DO, and much less about HOW I want to do it. (I know everyone says that about functional languages, but it is true in my experience!) I have also found that my programs in Clojure are more concise than what I write in other languages. This is partially due to the syntax (come on, guys, the parentheses really aren't that bad; Emacs formats it REALLY nicely) but it is also due to the functional paradigm---it just forces you to think straight to the point of what you're trying to do. Having a REPL (Read-Eval-Print Loop) is EXTREMELY helpful in learning a new language. Try stuff out in real time in the interpreter (just like with Python, etc.) Decreases the amount of time to master a given concept, in my opinion. Because of this

                        J Offline
                        J Offline
                        JimmyRopes
                        wrote on last edited by
                        #54

                        Thanks for the information and links. I will have to look into Clojure.

                        The report of my death was an exaggeration - Mark Twain
                        Simply Elegant Designs JimmyRopes Designs
                        Think inside the box! ProActive Secure Systems
                        I'm on-line therefore I am. JimmyRopes

                        1 Reply Last reply
                        0
                        • M mattyltaylor

                          Hi, I've used AutoCAD for 20+ years. For almost all of those I've used AutoLISP to get AutoCAD to do what I want it to. It's obviously not Common Lisp, but I've found it to be extremely useful when trying to automate tasks. In AutoCAD you can almost use it as a scripting language - it's easy to make changes on the fly (no code compilation required). I've never touched Common Lisp though! Cheers.

                          J Offline
                          J Offline
                          JimmyRopes
                          wrote on last edited by
                          #55

                          Thanks for the information

                          The report of my death was an exaggeration - Mark Twain
                          Simply Elegant Designs JimmyRopes Designs
                          Think inside the box! ProActive Secure Systems
                          I'm on-line therefore I am. JimmyRopes

                          1 Reply Last reply
                          0
                          • M Member 4608898

                            Anyone who use emacs or works with HLA (a lot of the defence simulation industry) or one of the SAFs (modsaf, onesaf etc) will use lisp as the configuration language. They won't call it lisp: they will give it some configuration language name but it is still lisp in syntax. Do you use lambda functions? They started in lisp.

                            J Offline
                            J Offline
                            JimmyRopes
                            wrote on last edited by
                            #56

                            Member 4608898 wrote:

                            Do you use lambda functions? They started in lisp.

                            Yes I do and didn't know the originated in LISP.

                            The report of my death was an exaggeration - Mark Twain
                            Simply Elegant Designs JimmyRopes Designs
                            Think inside the box! ProActive Secure Systems
                            I'm on-line therefore I am. JimmyRopes

                            I 1 Reply Last reply
                            0
                            • J JimmyRopes

                              irneb wrote:

                              Lisp code tends to take not just less time to type but also a lot less time to debug - it's a near exponential increase in my productivity.

                              Intersting.

                              The report of my death was an exaggeration - Mark Twain
                              Simply Elegant Designs JimmyRopes Designs
                              Think inside the box! ProActive Secure Systems
                              I'm on-line therefore I am. JimmyRopes

                              I Offline
                              I Offline
                              irneb
                              wrote on last edited by
                              #57

                              JimmyRopes wrote:

                              Intersting.

                              I must state though: My personal experience is a bit unique in that the AutoCAD DotNet API and the AutoLisp integration into ACad both give the same (to a point) functionality. So here I can actually compare apples with pears :| For the general case though, Lisp is not used as much as other languages. E.g. if you need to do something in DotNet and you want to use Lisp, then there are only 2 (that I know of) variants which might work: IronScheme (Scheme direct inside DotNet) and ABCL (Armed Bear Common Lisp inside the JVM) / Clojure through the JVM-Net-bridge. Otherwise you can write unmanaged Lisp code in CL and then use the DotNet libraries through CL's RDNZL library (similar to Java's bridge idea), but I don't know how you'd create new DotNet execs/libs from such. If you're writing unmanaged code (i.e. direct compile to hardware's instruction set - not through a virtual machine like DotNet/JVM) then your options are greatly increased. Most Lisp implementations would compile to something similar as C would, in fact a lot of them actually use C as a form of assembly - i.e. translating the Lisp-code to C code and then using a C-compiler to produce the executable.

                              J 1 Reply Last reply
                              0
                              • J JimmyRopes

                                Member 4608898 wrote:

                                Do you use lambda functions? They started in lisp.

                                Yes I do and didn't know the originated in LISP.

                                The report of my death was an exaggeration - Mark Twain
                                Simply Elegant Designs JimmyRopes Designs
                                Think inside the box! ProActive Secure Systems
                                I'm on-line therefore I am. JimmyRopes

                                I Offline
                                I Offline
                                irneb
                                wrote on last edited by
                                #58

                                JimmyRopes wrote:

                                Yes I do and didn't know the originated in LISP.

                                You'd be surprised just how many things originated from lisp. Even the ubiquitous if-then-else wasn't in Fortran before it was taken from Lisp, it only became ubiquitous in other languages when it was shown to be so much easier to use than conditional goto-statements. Map functions (i.e. the functional method of iterating over a list/array and modifying each item to produce a list of results) was originally in the oldest of Lisps - generally known as the mapcar function. Chances are that whatever language you're using, about half of it stemmed from Lisp originally. Lisp was the first language to actually have all of the now "new" concepts incorporated in one package: iterative, imperative, functional, recursive, object oriented, meta (macros), etc. It allows you to mix-n-match any of these interchangeably so you can choose which works the best for the scenario at hand. That is probably why it makes you able to program in other languages a lot better after you've done some Lisp. Note though, Lisp comes in 3 major dialects: Common, Scheme & "Other". Clojure and NewLisp can be seen as examples of the "Other" type, while they are still Lisps, they don't conform to the strict specifications of Common / Scheme - it would be like a new type of C where it's not conforming to the general principles of C (you could see it like the difference between Java and C#, both look reasonably the same and do the same things, but in slightly different detail). Scheme is generally used in universities since it's a minimalist language, i.e. only the basics are incorporated into its spec. You're supposed to generate your own libraries or use others' libraries - these are usually not included into the language. Common Lisp is at the other end of the spectrum, it's specification tries to encompass all generally needed libraries and functionality. The Others tend to be a mix or they're built on top of existing libraries. Here's one thing which opened my eyes quite wide: The creator of IronScheme first started to make an IronLisp (intended to be a Common Lisp on the DotNet VM). He gave up on this because it was too difficult. One aspect (of many) which is very dificult to near impossible to implement in the CLR is Common Lisp's object orientation (known as CLOS - Common Lisp Object System) and especially the MOP (meta object protocol). It simply doesn't translate into something which the CLR can do. Scheme

                                1 Reply Last reply
                                0
                                • J JimmyRopes

                                  It is cruel to have a p in the word to describe a lisp. :-D

                                  The report of my death was an exaggeration - Mark Twain
                                  Simply Elegant Designs JimmyRopes Designs
                                  Think inside the box! ProActive Secure Systems
                                  I'm on-line therefore I am. JimmyRopes

                                  J Offline
                                  J Offline
                                  James Lonero
                                  wrote on last edited by
                                  #59

                                  Ah yes, I just remembered: Lots of Insipid Stupid Parentheses.

                                  1 Reply Last reply
                                  0
                                  • M Mark Whybird

                                    This guy did real stuff with it: http://www.paulgraham.com/avg.html[^] It helped him make money, too.

                                    J Offline
                                    J Offline
                                    JimmyRopes
                                    wrote on last edited by
                                    #60

                                    Thanks for the link

                                    The report of my death was an exaggeration - Mark Twain
                                    Simply Elegant Designs JimmyRopes Designs
                                    Think inside the box! ProActive Secure Systems
                                    I'm on-line therefore I am. JimmyRopes

                                    1 Reply Last reply
                                    0
                                    • I irneb

                                      JimmyRopes wrote:

                                      Intersting.

                                      I must state though: My personal experience is a bit unique in that the AutoCAD DotNet API and the AutoLisp integration into ACad both give the same (to a point) functionality. So here I can actually compare apples with pears :| For the general case though, Lisp is not used as much as other languages. E.g. if you need to do something in DotNet and you want to use Lisp, then there are only 2 (that I know of) variants which might work: IronScheme (Scheme direct inside DotNet) and ABCL (Armed Bear Common Lisp inside the JVM) / Clojure through the JVM-Net-bridge. Otherwise you can write unmanaged Lisp code in CL and then use the DotNet libraries through CL's RDNZL library (similar to Java's bridge idea), but I don't know how you'd create new DotNet execs/libs from such. If you're writing unmanaged code (i.e. direct compile to hardware's instruction set - not through a virtual machine like DotNet/JVM) then your options are greatly increased. Most Lisp implementations would compile to something similar as C would, in fact a lot of them actually use C as a form of assembly - i.e. translating the Lisp-code to C code and then using a C-compiler to produce the executable.

                                      J Offline
                                      J Offline
                                      JimmyRopes
                                      wrote on last edited by
                                      #61

                                      Thanks for the information

                                      The report of my death was an exaggeration - Mark Twain
                                      Simply Elegant Designs JimmyRopes Designs
                                      Think inside the box! ProActive Secure Systems
                                      I'm on-line therefore I am. JimmyRopes

                                      1 Reply Last reply
                                      0
                                      • J JimmyRopes

                                        bwallan wrote:

                                        Didn't know it was still used or even known!?

                                        I was reading something written by Alan Kay[^] and he mentioned LISP as being the best computer language. It was probably written many years ago. It got my curiosity up about if it was still used and if it was worth learning.

                                        The report of my death was an exaggeration - Mark Twain
                                        Simply Elegant Designs JimmyRopes Designs
                                        Think inside the box! ProActive Secure Systems
                                        I'm on-line therefore I am. JimmyRopes

                                        B Offline
                                        B Offline
                                        bwallan
                                        wrote on last edited by
                                        #62

                                        Since Alan K. was playing around with LISP in the late 1960's, I would assume the quote came from around then. LISP appears to be one of most enduring languages (along with Fortran), originating in 1958. Reading the Wikipedia article on LISP it would look like it has had a resurgence in recent years. I might dig up my old LISP code and see if it is still viable... :) bwa

                                        J 1 Reply Last reply
                                        0
                                        • B bwallan

                                          Since Alan K. was playing around with LISP in the late 1960's, I would assume the quote came from around then. LISP appears to be one of most enduring languages (along with Fortran), originating in 1958. Reading the Wikipedia article on LISP it would look like it has had a resurgence in recent years. I might dig up my old LISP code and see if it is still viable... :) bwa

                                          J Offline
                                          J Offline
                                          JimmyRopes
                                          wrote on last edited by
                                          #63

                                          bwallan wrote:

                                          Since Alan K. was playing around with LISP in the late 1960's, I would assume the quote came from around then.

                                          Quite likely.

                                          The report of my death was an exaggeration - Mark Twain
                                          Simply Elegant Designs JimmyRopes Designs
                                          Think inside the box! ProActive Secure Systems
                                          I'm on-line therefore I am. JimmyRopes

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups