You can represent anything with s-expressions, but that doesn’t make that thing Lisp. There’s other aspects that basically every practical Lisp shares like be being expression languages with semantics defined through eval, and impure functional style being the norm, and of course macros. If you took C++ and replaced curly braces with begin/end and changed variable definitions to let i : int = 1, you could make it look like ML, but of course it wouldn’t be ML because semantically it’s still absolutely C++. A better looking C++, but that’s neither here nor there.
You can represent anything with s-expressions, but that doesn’t make that thing Lisp. There’s other aspects that basically every practical Lisp shares like be being expression languages with semantics defined through
eval, and impure functional style being the norm, and of course macros. If you took C++ and replaced curly braces withbegin/endand changed variable definitions tolet i : int = 1, you could make it look like ML, but of course it wouldn’t be ML because semantically it’s still absolutely C++. A better looking C++, but that’s neither here nor there.