https://ja.wikipedia.org/wiki/関数型言語#関数型プログラミングの例
VBAで書くとこういうことですな

手続き型
Function fibona(num As Integer) As Integer
 Dim x As Integer, y As Integer, tmp As Integer
 x = 1: y = 1
 For i = 2 To num
  tmp = x: x = y: y = y + tmp
 Next
 fibona = y
End Function

関数型
Function fibona2(num As Integer) As Integer
 If num < 2 Then fibona2 = 1 Else fibona2 = fibona2(num - 2) + fibona2(num - 1)
End Function

なるほど、「フィボナッチ数列は前2個を再帰的に足す」という要件が、下の方が見えやすいね
この場合は上の方が呪文
ただ下は要件は見えやすいが、なんとなくであって、動作に確証は持ちにくいわな

しかし引数が10の時、上は9ループだけど下は177回!
それ専用の言語はうまくコンパイルするのかな