「再帰」の説明の一例(プログラミング初心者向け)
(Twitterから参照するためのメモです)
まずそもそも「関数」は「同じ形の計算を何度も書かないための仕組み」であることを十分に理解する(させる)。その上で、
sum(0) = 0 sum(1) = 0+1 sum(2) = 0+1+2 sum(3) = 0+1+2+3 sum(4) = 0+1+2+3+4 ...
も「同じ計算を何度も書いている」から、
sum(0) = 0 sum(1) = sum(0)+1 sum(2) = sum(1)+2 sum(3) = sum(2)+3 sum(4) = sum(3)+4 ...
と書き換える。これを一般化すると
sum(0) = 0 sum(n) = sum(n-1)+n (n>0の場合)
つまり
sum(n) = if n=0 then 0 else sum(n-1)+n
となる
追記:n<0の場合は気にするな。