SML# - Tutorial/012 Diff

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

[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/011]] | [[ 次ページ |Tutorial/012.1]] ]
----
以下の各問に関して,MLの場合はそれら関数を対話モードで呼び出し結果を
確認し,Cではそれら関数を呼び出し結果を表示するmain関数を書き実行結果
を確認せよ.

# 以下の関数を,MLでは再帰的関数として,Cでは繰り返しを使って定義せよ.
## xをyで割った商を求める関数 shou(x,y)を引き算を使って定義せよ.
## xをyで割ったあまりを求める関数 amari(x,y)引き算を使って定義せよ.
## 1からnまでの自然数のk乗の和を求める関数sigmaN(k,n).
## 初項A(0)がa公差がbの等差数列のn番目の項 A(a,b,n)を求める関数.
## 初項B(0)がa公比がbの等比数列のn番目の項 B(a,b,n)を求める関数.
## 初項C(0)がa漸化式 C(n) = b + c * C(n - 1)のn番目の項を求める関数 C(a,b,c,n).
# 上記各関数を,MLでは末尾再帰関数として,Cでは再帰的関数として定義し直せ.
# 以下の漸化式で定義されるフィボナッチ関数fibを再帰的関数として定義せよ.
** fib(0) = 1
** fib(1) = 1
** fib(n+2) = fib(n+1) + fib(n)
# フィボナッチ数を求める関数を、Cなら繰り返しを使った関数に、MLなら末尾再帰する補助関数を使う関数に定義し直せ。さらに、それぞれについてfib (40)を実行し時間を比較せよ。

!解答例
* [[C|Tutorial/012.1]]
* [[ML|Tutorial/012.2]]

----
次は、プログラムが扱う種々の型を学ぼう。
* [[Cの基本データ型と基本演算|Tutorial/013]]
* [[MLの基本データ型と基本演算|Tutorial/014]]
----
[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/011]] | [[ 次ページ |Tutorial/012.1]] ]