pklausler 18 minutes ago

I wish so badly that there were a statically typed, pure, and lazy Scheme.

  • Chinjut 6 minutes ago

    What would distinguish this from existing statically typed, pure, and lazy functional languages such as Haskell?

tonetheman 2 hours ago

I wish I saw what these guys do in scheme. I only barely know what is happening and it seems interesting.

The parens are so hard for me to follow and always have. I have yet to find an editor that fixes that. Perhaps I did not try enough or am not smart enough to acutally use the editors correctly.

Anyway interesting read I think

  • neilv 2 hours ago

    C-like syntax:

        foo(1, 2, 3);
    
        if (x) {
            aaa();
        } else {
            bbb();
        }
    
    Lisp-like syntax:

        (foo 1 2 3)
    
        (if x
            (aaa)
            (bbb))
    
    Syntax is easy. Practical semantics is a little bit harder, but it's not hard.

    Editor-wise, you want an editor that does automatic indenting and some kind of matching parentheses highlighting. Emacs is one. (Once you've learned the language, you can use a fancy structural editor, but maybe don't confuse yourself with too many new things at once.)

  • hellcow 2 hours ago

    paredit on vim is great.

    Working through all the exercises in "The Little Schemer" was a huge help for me when getting started. You start with a few primitives and build up all common tools from those with recursion, like how to build an addition function using just `add1` as an early example from the book.

    • fleahunter 2 hours ago

      Interesting point about the difficulty of parsing all those parentheses! I remember getting pretty frustrated with it when I first picked up Scheme. It felt like trying to read a book written in a strange code. But then I stumbled onto paredit in Emacs—it totally transformed the way I interacted with the code. The structured editing made it feel more like composing music than wrestling with syntax.

      And you're right—working through "The Little Schemer" was a game-changer for me too. There's something about gradually building up to complex concepts that really clicks, right? I wonder if there could be a way to create more beginner-friendly editors that visually guide you through the syntax while you code. Or even some sort of interactive tutorial embedded in the editor that helps by showing expected patterns in real-time.

      The tension between users wanting features and implementers wanting simplicity is so prevalent in so many languages, isn't it? Makes me think about how important community feedback is in shaping a language's evolution. What do you all think would be a good compromise for Scheme—more features or a leaner report?

  • bitwize 2 hours ago

    The "such parens, much overwhelm, so confuse" attitude of non-Lispers always baffled me. Especially since when working in C-syntax languages, I'm cautious enough to enforce an explicit order of operations (to avoid confusion that can lead to errors) that I put nearly as many parens in my C or Java code as I do in my Lisp code. What's a few more pairs of round brackets among friends, eh?

    Emacs was purpose-built for working in Lisp. Out-of-the-box it really helps with paren-matching by highlighting the matched bracket (of any type) when you cursor over a bracket (also works by highlighting the open when you type the close) and providing commands for traversing and selecting whole sexps. Those alone, combined with its smart indentation, will get you pretty far. Add something like Paredit or Parinfer if you want even more assistance with sexp manipulation.