I started with BASIC on C64-/VIC-style machines, then went on to dabble in C, C++, Java, Visual Basic, Delphi Pascal, PHP, before I came into contact with CL and Emacs. Recursion-iteration-equivalence was a mindblower for young me, suddenly I realised more ways to use it for problem solving in the algolians than I had seen before. If I had gone the other way around I'm sure I would have saved a lot of time.
This is surely a single point of anecdata, but it makes me suspect that it was more about how teaching was done than a 'functional vs. imperative' thing. I also suspect pointers and memory management to have been bigger hurdles than how to format code for iteration, unless the Racket course introduced techniques like quoting.
This is surely a single point of anecdata, but it makes me suspect that it was more about how teaching was done than a 'functional vs. imperative' thing. I also suspect pointers and memory management to have been bigger hurdles than how to format code for iteration, unless the Racket course introduced techniques like quoting.