Live data from Hacker News

I Wrote a Scheme in 2025

maplant.com

51–60 of 66 posts

Re: I Wrote a Scheme in 2025

#51
post #18

Earlier quoted context omitted.

> - Every day that passes, the gulf between Lisp's tooling and what a typical user expects grows wider. It needs to escape Emacs and SLIME to something that feels complete and polished. Can you give specific examples of "what a typical user expects" that are missing from Emacs-based programming environments (SLIME, and/or others)? I'm not suggesting there aren't any, I'd just like to know your list.

- Ease of setup and install. Turnkey. Good defaults. - Non-buffer based workflows. - Easy access to settings. - Easy ways to change or switch my compiler. - Integrated with typical lisp tooling for library, system, and package management. (For example, what Emacs button do I press to set or clear my ASDF compile cache?) - Better integration of the profiler and debugger. When a Lisp error happens, yet another buffer p…

Basically LispWorks and Allegro Common Lisp, Dr. Racket, and Cursive.

Too many only know Emacs apparently.

Re: I Wrote a Scheme in 2025

#52
post #38

Earlier quoted context omitted.

Leaving aside the fact that you have at least 4 (EDIT: 5) mistakes in that code, I find it less readable than the Lisp equivalent. The brackets reinforce the structure imposed by the indentation and help me keep track of order of execution. But that's how my brain works and that's why syntax is subjective.

My apologies, it should've been (if you insist on indentation) let a, b, c = 0, 1, 0 fb_start: writen(a) b +:= a a := b - a c +:= 1 if c Would you care to elaborate about brackets helping with tracking the order of execution? I'm really curious about that part.

Well, the P in PEMDAS stands for 'brackets'. The clearest example, even though it's rather uncommon:

  a := x ** y ** z
(and that's hoping the language does the OOE for exponentiation arithmetically correctly) versus

  (setf a (expt x (expt y z)))
It's a bit like how Reverse Polish Notation is superior to the infix notation we torture ourselves with (x + y * z or (x + y) * z versus x y z * + or x y + z *).

Re: I Wrote a Scheme in 2025

#53
post #52

Earlier quoted context omitted.

My apologies, it should've been (if you insist on indentation) let a, b, c = 0, 1, 0 fb_start: writen(a) b +:= a a := b - a c +:= 1 if c Would you care to elaborate about brackets helping with tracking the order of execution? I'm really curious about that part.

Well, the P in PEMDAS stands for 'brackets'. The clearest example, even though it's rather uncommon: a := x ** y ** z (and that's hoping the language does the OOE for exponentiation arithmetically correctly) versus (setf a (expt x (expt y z))) It's a bit like how Reverse Polish Notation is superior to the infix notation we torture ourselves with (x + y * z or (x + y) * z versus x y z * + or x y + z *).

But that's just associativity, not the order of evaluation? E.g. in C# expressions are evaluated strictly left to right, so if it had operator **, the order of evaluation would've been:

    tmp1 := x, tmp2 := y, tmp3 := z, tmp4 := tmp2 ** tmp3, yield tmp1 ** tmp4
And, eh, I am not really that convinced that

    a b * c d * x y * z t * p q * + + sqrt + +
is much less torturous than

    a * b + c * d + sqrt(x * y + z * t + p * q)

Re: I Wrote a Scheme in 2025

#54
post #23

Earlier quoted context omitted.

Better syntax highlighting immediately comes to mind. Maybe code actions/automatic refactoring too.

Lisp does not have that much syntax for highlighting to be a problem. Lisp is also a symbolic language. Meaning the code work on symbols, not data, only at evaluation the value of the symbol is known. There’s a lot of symbols manipulation routines like macros, intern, package loading,… that prevent to statically know the code. It’s why people use the REPL flow.

The problem is not a lack of syntax highlighting per se, but the inconsistency of existing syntax highlighting. This is especially annoying in Common Lisp due to the existence of symbol macros, where syntax highlighting would be immensely helpful. I get that there are issues with symbol manipulation, but AFAIK language servers already evaluate code, even if not for syntax highlighting. I view this whole thing as an issue caused by the REPL workflow, not the inverse. Not to say that I would be willing to give up said workflow but it could certainly use improvements.

Re: I Wrote a Scheme in 2025

#55

Earlier quoted context omitted.

I love clojure but the points still stand, kind-of. - There is Calva for VS Code but the community default is emacs and cider - How many programs in apt or brew are written in clojure? I'd concede that the community is great and focused on productivity, but it's so niche that you don't see much work out there made in clojure, and there is also a vestigial lisp sentiment to prefer building your own library from scratc…

> There is Calva for VS Code but the community default is emacs and cider Emacs isn’t required. You can always create a REPL plugin. Emacs just does a lot of heavy lifting for you due to comint, sexp navigation, and process management being included. > building your own library from scratch instead of contributing to a standard library Simple data structures lead to very generic function. You don’t have to write towe…

I'm pretty sure he's talking about mutating the argument, as in taking issue with the opinionated nature of Clojure.

Re: I Wrote a Scheme in 2025

#57
post #20

Earlier quoted context omitted.

It's hard to reconcile that with the comment they were responding to that claimed that lisp requires you to be the designer of the language a bit. I don't know enough to know who is right, but if the majority of the code is "just" regular functions and classes then I'd argue that it doesn't require custom design as a much as allow it, and the solution you're proposing is to mostly disallow it by convention. Like the…

Lisp isn't solely defined by DEFMACRO. There are other reasons to use it too, in ways that can complement or compete with DEFMACRO. I also don't really know or understand what the term "flexible" is supposed to mean precisely. What makes a Rust macro less flexible than a Lisp macro in the context of this discussion? In particular, what do Rust macros tamp down on in terms of power that make them more justified for oc…

I don't disagree with anything you're saying in the abstract, but I'm trying to point out that you were initially responding to someone who had in turn responded to a very specific viewpoint, and the viewpoint you're arguing for seems to be almost the exact opposite of that top-level comment. Someone claimed "XYZ is why I like lisp", and someone else responded "XYZ seems like it might cause issues in practice", and you jumped in to argue back against that by defending Lisp without engaging with the fact that what they were really responding to was XYZ.

Re: I Wrote a Scheme in 2025

#60

Earlier quoted context omitted.

> let a, b, c = 0, 1, 0 That's atrocious; = should never have a lower precedence than comma.

Please forward your complaints to Martin Richards @ https://www.cl.cam.ac.uk/~mr10/ for making this decision. Also, why?

Sorry, where did Martin Richards supposedly make this decision?
Post reply on HN