SML# - Tutorial/009-2 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

[ [[トップ |Tutorial]]| [[目次|Tutorial/000 | [[前ページ|Tutorial/009]] | [[ 次ページ |Tutorial/010]] ]
----
以下に再帰的な定義と対応するSML#コード例を示す.
# 引き算を使って商を求める関数 sub(x,y)を書け.
## sub(x,y) = 0 (x < y の時)
## sub(x,y) = 1 + sub (x -y, y) (x >= y の時)
fun sub(x,y) = if x < y then 0 else 1 + sub(x - y, y)
# 引き算を使ってあまりを求める関数 mod(x,y)を書け.
## mod(x,y) = x (x < y の時)
## mod(x,y) = mod (x -y, y) (x >= y の時)
fun mod(x,y) = if x < y then x else mod(x - y, y)
# 1からnまでの自然数のk乗の和を求める関数sigmaN(k,n)を書け.
## sigmaN(k,0) = 0
## sigmaN(k,n) = sigmaN (k, n - 1) + power(n, k)
fun sigmaN (k,0) = 0
   | sigmaN (k,n) = sigmaN (k, n - 1) + power(n, k)
# 初項がa公差がbの等差数列のn番目の項 A(a,b,n)を求める関数を書け.
## A(a,b,0) = a
## A(a,b,n) = b + A(a,b,n - 1)
fun A(a,b,0) = a
   | A(a,b,n) = b + A(a,b,n - 1)
# 初項がa公比がbの等比数列のn番目の項 B(a,b,n)を求める関数を書け.
## B(a,b,0) = a
## B(a,b,n) = b *  B(a,b,n - 1)
fun B(a,b,0) = a
   | B(a,b,n) = b * B(a,b,n - 1)
# 漸化式 C(n) = a + b * C(n - 1)のn番目の項を求める関数を書け.
## C(a,b,0) = a
## C(a,b,n) = a + b *  C(a,b,n - 1)
fun C(a,b,0) = a
   | C(a,b,n) = a + b * C(a,b,n - 1)
----
[ [[トップ |Tutorial]]| [[目次|Tutorial/000 | [[前ページ|Tutorial/009]] | [[ 次ページ |Tutorial/010]] ]