>> I’m very tempted to try make a case for calling ‘Snap!’ a scheme dialect: >> https://snap.berkeley.edu (looks like another block programming clone of >> scratch, but has scheme capabilities like first class functions) > Snap! may have similar semantic to Scheme but I would not call Scheme > a graphical/block language, it's not even lisp. The same JavaScript, R or Ruby > have lisp similarities but calling those languages lisp would be overuse of > the term. Some people call them lisp though. Scheme is Lisp, and the main feature of Lisp is that code is represented as lists. (I would go so far as to argue that all other features of Lisp are tangential, and I can back up my claim.) John McCarthy considered it very important for a language to have one abstract syntax (e.g. lists) which can be manipulated (e.g. macros). Such a language can have several concrete syntaxes that interoperate via the shared abstract syntax. (Racket is exploring in this direction.) A language with two concrete syntaxes, a visual block-based one and a textual list-based one, would fit within McCarthy's parameters. https://snap.berkeley.edu/snap/help/SnapManual.pdf sounds very Lisp-like but I can't find a concrete list-based representation of Snap programs.