5 ms·
This is not particularly accurate, and doesn't seem maintained. Just looking at the start of the first column, Common Lisp, for a bit: - "command line program"
by jorams 8y ago
This is not particularly accurate, and doesn't seem maintained. Just looking at the start of the first column, Common Lisp, for a bit:
- "command line program" is empty, but should contain
sbcl --eval '(+ 1 1)'
- "identifier" says "case insensitive, cannot start with digit", but identifiers can start with digits just fine. 1+ is a built-in function that proves it. It just can't look like a number.
- "identifier" also says some characters are "reserved for user macros", but that's not actually a thing. ?![]{} is a valid identifier, you just shouldn't use it.
There's probably much more. There are also plenty of things that are inaccurate, but would need more explanation than there is room for.
- FPGAhacker 8y agohttps://github.com/clarkgrubb/hyperpolyglot/issues https://github.com/clarkgrubb/hyperpolyglot/issues
- jorams 8y agoI looked at that, which is why I mentioned it "doesn't seem maintained". Issues there are old and not getting responses and the last commit is from a year ago.
- peatmoss 8y agoI noticed some weird and out of date stuff with Racket too.
- bjoli 8y agoI don't use racket much, and even I noticed some stuff that are off. Nobody really uses srfi-19 for dates (everybody recommends Gregor iirc) and they hardly seem to use any for loops.
- cup-of-tea 8y agoCommon Lisp is also not case insensitive. Rather, everything is translated to upper case by the reader by default. But you can intern symbols yourself, or change the reader behavior, and you'll find it's case sensitive.
- andreareina 8y agoI don't know if it's part of the spec, but sbcl is actually case-sensitive, just that read upcases everything by default. There's a special syntax if you need to preserve case: |this-will-be-read-with-case-preserved|
- lispm 8y agoThat's part of Common Lisp. By default the reader is case-insensitive and upcasing -> the internal representation is case-preserving. If we escape characters in a symbol or even the whole symbol, those preserve their case. But one can for example configure the READER in Common Lisp to use different modes - for example fully case preserving. The built-in CL symbols will stay in uppercase - because that's how they are defined. CL-USER 32 > (setf (readtable-case *readtable*) :preserve) :PRESERVE CL-USER 33 > (DEFUN This-Is-A-Symbol (VarIable) (SIN VarIable)) This-Is-A-Symbol CL-USER 34 > (This-Is-A-Symbol 7.4) 0.89870817 CL-USER 35 > (THIS-IS-A-SYMBOL 7.4) Error: Undefined operator THIS-IS-A-SYMBOL in form (THIS-IS-A-SYMBOL 7.4). As you can see, we can then program with case preserved syntax and use the uppercase built-in symbols like DEFUN or SIN.
- jorams 8y agoThat syntax is displayed lower down, under "quoted identifier". I think this is an area that "would need more explanation than there is room for". There's also the fact that |white space symbol| and white\ space\ symbol are not actually the same thing.
- lispm 8y agoRight: CL-USER 26 > (defun ?![]{} (123456789?![]{}) (+ 123456789?![]{} #xd)) ?![]{} CL-USER 27 > (?![]{} #x1d) 42