Functional Programming の肝って、返り値が引数にのみ依存することだと思う。
副作用頼らずに組めるとか、そういう program 最適化するとかが、 FPL に要求される点、特微になる点だと思う。

関数呼び出しの形で記述すること自体は、手続き呼び出しの形と、あんまり区別つかなそうな気がする。

高階関数は重要だと思うけど、もう珍しい機能じゃないから、あんまり特微って感じがしない…

無名関数は、便利だし C とかにはないけど、むしろ動的にいろいろできる言語の特微な気がする。
perl でも無名手続き作ったりできるけど、あんまり関数型っぽくないし…

継続を副作用とかじゃなくて引数として渡してる、って点は関数型っぽいかな…
関数との interface は引数と返り値だけ、っていう点で。
継続を global variable に保持しとく…とかのやりかたも、手続き型なら選択肢の一つになりそうだし。