Bio dev here, time to create a HN account I guess. Got a nod that someone posted about it here, which I would prefer to happen a few years from now given the early stage, but hey what can you do :)
I 100% agree with formatting and I've started fixing it, the leftovers were from some (misguided) experimenting.
You know, when someone creates the millionth homegrown lisp/scheme interpreter, they're probably not particularly concerned about SEO or "product", and are just hacking for the fun of it.
Macros and dynamic typic works fine, but performance is terrible for now as it's an AST interpreter. My main focus is going forward will be to finish the vm/jit backend.
There are at least a couple of other Lisps written in Zig, though I'm not sure about the state. One is in the Mal repository, the other was targeting WASM iirc.
Parentheses in lisp are a lot like significant indentation (Python, Haskell, etc), in that people tend to complain about it "from afar". It is only once they start actually using the language to develop something nontrivial, that they realize that you quickly stop noticing the syntax entirely.
Problem is always when you need to move code, select/highlight code, paste code, navigate code, and so on. With clear start and end markers like open and close parentheses or like "begin" and "end" in other languages, that problem does not even exist.
Basically, you are confirming, what the original comment said. I now strongly suspect, that you have never used structured editing, which is where the issues with Python syntax are.
When using structured editing, why does it matter what the syntax is? The editor is going to handle it for you anyway.
> Where paredit for Python?
I don’t know, go make it. But what would you imagine it to do? Moving blocks of indented code around is already easy without needing language-specific treatment.
> When using structured editing, why does it matter what the syntax is? The editor is going to handle it for you anyway.
It matters, because the start and end markers of code allow for easy recognition of where something starts and ends and make the move independent from things like indentation. In Python, if you wanted to do the same, you would have to change indentation in many cases. Also the language is less expression based, which makes it even harder to, for example slurp a block/unit of code, because it is not clear how far the slurping should go.
> I don’t know, go make it. But what would you imagine it to do? Moving blocks of indented code around is already easy without needing language-specific treatment.
Well, I am not the one claiming here, that it does not matter, whether there are start and end markers for blocks of code, so the onus is not on me to make this thing, it is up to you to prove it can be done. Lets not try to reverse the obligation of proof here.
Brackets? That's easy! Just use parentheses instead!
I guess you mean parentheses. Perhaps I am unaware of some meaning of brackets, that also describes parentheses, but afaik parentheses are different from brackets.
In Russian words parentheses, brackets and braces are represented by the same word with modifier (round, square, figure, etc)
I always have problem when speaking English because can’t remember which one is which.
I see they use they use the actual lambda character "λ" to create functions which is both cool and also probably makes grepping for functions a PITA. It does look pretty but I would have to search the web or write down the random keystroke to generate that symbol.
It's pretty common to wire \ to the lambda character in your editor. I think racket already allows this (if not as a replacement for lambda, an alternative syntax for it)