@oantolin Yes, APL (or successors Iverson J, K) is Functional and Matrix oriented with meta and hyper operators-on-operators. Quite mind-bendy in delightful ways.
More than _one_ Assembler helps, as architectures can be quite different. PDP-11 vs 386 vs IBM 360/370 vs PDP-8.
One may consider "C" to be just a better PDP-11 Assembler, and as such perhaps it doesn't extend the list. IBM 370 MASM had marco abilities that made it sometimes higher level than C.
C++ was arguably the wrong marriage of C and OO; Objective C was more like how SQL gets embedded in a host language, so one was clear when a line of code was OO vs Procedural.
(I love how #107 presages MJD's observation that PL/I and Perl share the Camel-nature. But while PL/I was useful as a multi-paradigm single pedagogic language 40+ years ago, I'm not sure I'd call it mind-expanding as a language. )
Sometimes it's a useful exercise to use the wrong tools for the job, whereby one finds out why they are wrong. In one shop, I did text ops in Fortran since it had the best subs and operators for it (poor set of choices). Arithmetic in Prolog because pencil-and-paper world domain data had too much of it. An Expert System in recursive MASM macros because it was the only interpretive language on VM370.
Task Compute the factors of a positive integer. These factors are the positive integers by which the number being factored can be divided to yield a positive...
Bill Ricker
in reply to Profoundly Nerdy • • •Bill Ricker
Unknown parent • • •Yes, APL (or successors Iverson J, K) is Functional and Matrix oriented with meta and hyper operators-on-operators.
Quite mind-bendy in delightful ways.
Bill Ricker
Unknown parent • • •@seeg @bortzmeyer
Prolog or other Unification-Satisfaction Logic Programming (LP) yes.
And also forward-chaining LP languages such as OPS5, OPS83, etc.
Bill Ricker
in reply to Profoundly Nerdy • • •More than _one_ Assembler helps, as architectures can be quite different.
PDP-11 vs 386 vs IBM 360/370 vs PDP-8.
One may consider "C" to be just a better PDP-11 Assembler, and as such perhaps it doesn't extend the list. IBM 370 MASM had marco abilities that made it sometimes higher level than C.
C++ was arguably the wrong marriage of C and OO; Objective C was more like how SQL gets embedded in a host language, so one was clear when a line of code was OO vs Procedural.
Bill Ricker
Unknown parent • • •😱
Bill Ricker
Unknown parent • • •@raganwald
Perlis remains inspirational!
(I love how #107 presages MJD's observation that PL/I and Perl share the Camel-nature. But while PL/I was useful as a multi-paradigm single pedagogic language 40+ years ago, I'm not sure I'd call it mind-expanding as a language. )
Bill Ricker
in reply to Profoundly Nerdy • • •In one shop, I did text ops in Fortran since it had the best subs and operators for it (poor set of choices).
Arithmetic in Prolog because pencil-and-paper world domain data had too much of it.
An Expert System in recursive MASM macros because it was the only interpretive language on VM370.
Bill Ricker
in reply to Bill Ricker • • •& in-house email in VM/CMS command files or DEC-10 System1022 pseudo-relational DBMS macros (because we didn't have email on the systems yet!)
(Yes I'm old, why do you ask?)
Bill Ricker
Unknown parent • • •@CGM @Lemmus
RosettaCode is an interesting place to see exemplar programs in polyglot languages.
e.g. Factor an integer in Prolog.
rosettacode.org/wiki/Factors_o…
Factors of an integer - Rosetta Code
Rosetta Code