It depends. As we know, FP is all about not having side effects. Having “for” loop requires to mutate the pointer of given iteration.
open Printf;;
printf "After all OCaml isn't a FP language\n";
for idx = 1 to 10 do
printf "%d\n" idx
done
Same goes to Common Lisp, F#, Scala, Clojure.