Anybody remember PL/I? Digital Research had a version that ran on CP/M. It's out there somewhere.
When I got a university summer holiday job in 1984/5 it was to do some programming at a financial company that had a Data General MV/10000 "supermini" VAX competitor running commercial package software, but no programmers of their own.
My first task was to decide which compiler to buy from DG for IIRC around $20,000: COBOL, FORTRAN, or PL/I.
I spent a week in the NZ DG offices trying out each one, and also DG/SQL, and their integration with it.
I decided on PL/I, by a country mile. If you squinted at it a little, you could use it basically like Pascal or C but with funny syntax. It supported recursion and new/malloc An advantage it had over both was the ability to define a local function anywhere inside a function and then call it or pass it as an argument immediately -- almost immediately ... in the next statement. Not quite lamba / anonymous functions, but close. Also decent variable length strings and operations on them. And varargs pretty similar to C's.