3 ms·
It's "computational" now? He used to make a big thing about it being a "symbolic" programming language, which made more sense to me - a programming language th
by dTal 8y ago
It's "computational" now?
He used to make a big thing about it being a "symbolic" programming language, which made more sense to me - a programming language that treats symbols as a first-class concept is indeed a rare beast. Only computer algebra systems really attempt this, and of those few have really well designed programming languages. Yes, Lisp has symbols, but you can't really do much that's interesting with them directly. (sqrt x) when x is unbound is an error, not the abstract concept of taking the square root of an unspecified value. The idea of taking something that would normally be a "compiler optimization", like sqrt(x^2) => abs(x), and making it available at runtime as part of the evaluation model, can be seen as an evolution of the powerful idea of including (eval) in the language.
- lispm 8y ago>a programming language that treats symbols as a first-class concept is indeed a rare beast JavaScript > Only computer algebra systems really attempt this There are a bunch of programming systems (incl. computer algebra systems) on top of Lisp, which use various types symbol expressions.
- dTal 8y agoHow does javascript qualify? x2 => ReferenceError: x is not defined, same as any other non symbolic language. As for libraries - yes, there exist symbolic manipulation systems for Lisp - and Javascript, and Python (notably SymPy). But none of them integrate seamlessly with the language, because there's fundamental conflicts with the language's default evaluation model. You need to design something with that in mind from scratch, and doing it such a way as to make something elegant and composable and not a huge mess is really hard.
- lispm 8y ago> How does javascript qualify? It has symbols as a basic data type, slightly similar to Lisp. > But none of them integrate seamlessly with the language, because there's fundamental conflicts with the language's default evaluation model Lisp has symbols to implement these other evaluation models. Every evaluation model will have some problems integrating other ones. Most of them have a particular purpose: algebra, theorem proving, predicate logics, planning, ...
- deleted 8y ago[deleted]