Professor Jack Schwartz's SETL is great for designing algorithms at a high level yet executable if you want it. SETL is dynamically typed with compilation, type inference, and 'reppers' to optionally declare type info as tools to trade verbosity/effort for runtime efficiency (Think typescript vs javascript) all this in the late 70's.