Comment by doodlebugging

Comment by doodlebugging 3 days ago

8 replies

After putting on my boots and wading through all of that I think that you have one edit to make.

In the "Why Lisp?" section there is a bit of basic logic defined. The first of those functions appears to have unbalanced parentheses.

>(defun not (x) > (if x > false > true)

I have a compulsion that I can't control when someone starts using parentheses. I have to scan to see who does what with who.

You later say in the same section

>But it is really easy to program a computer to look for balanced parentheses

Okay. This is pretty funny. Thanks for the laugh. I realize that you weren't doing that but it still is funny that you pointed out being able to do it.

This later comment in the "Basic Number Theory" section was also funny.

>; After a while, you stop noticing that stack of closing parens.

I really enjoyed reading this post. Great job. Though it has been a long time since I did anything with Lisp I was able to walk through and get the gist again.

btilly 3 days ago

Thank you for the correction!

And I'm glad that someone liked some of my attempts at humor. As my wife sometimes says, "I know that you were trying to make a joke, because it wasn't funny."

  • doodlebugging 3 days ago

    It was a great read. I enjoyed how you laid it all out. It reminded me of some of my upper level math coursework. Easy to follow if you take it step by step and stop to consider the implications. Some things become obvious to the most casual observer.

  • whatagreatboy 3 days ago

    I found all the jokes funny as well. Thanks for the blog post. Extremely nice read. I love the approach.

kazinator 3 days ago

> I have to scan to see who does what with who.

Are you saying that parentheses introduce the problem of having to scan to see what goes with what?

As in, if we don't have parentheses, but still have recursive/nested structure, we don't have to scan?

  • doodlebugging 3 days ago

    For myself the issue goes back to my college mathematics courses, especially differential equations. I worked those homework problems by hand on a large format tablet, roughly 24" x 36", carefully laying them out step by step so that I could walk through them in the future and make sense of the solution process. Counting and matching parentheses was pretty critical since a missed parenthesis may not pop out at you like it would in a compiler error or by walking through code.

    I automatically count and match even today, 40 years later.

  • Retr0id 3 days ago

    Python block indentation is an example of nested structure that's at least easier to visually scan. You don't need to count opening/closing parens, just look down a column of text - assuming nobody mixed tabs and spaces. (but I wouldn't go as far as saying you don't need to scan it)

    • User23 3 days ago

      Canonically indented Lisp reads an awful lot like Python. You don’t read the braces, you read the indentation.