(18−1)[ML] 演習:リスト

以下のリスト生成関数を定義せよ.

  1. 自然数nを受け取り,nから1までの自然数のリストを返す関数downFromN.
  2. 自然数nを受け取り,1からnまでの自然数のリストを返す関数uptoN.
  3. 自然数nとkを受け取り,nからn+k-1までの自然数のリストを返す関数fromNtoK.
  4. 自然数nとkを受け取り,0からkまでの繰り返すn個の自然数のリストを返す関数KcycleUptoN.
  5. 文字cと自然数nを受け取り,cから順にn個の文字のリストを返す関数charList.

以下のリスト処理関数を定義せよ.

1. 整数のリストの要素の積を計算する関数:prodList.例えば以下のような動作をする.

# prodList [1,2,3];
val it = 6 : int

2. リストを要素の組みのリストに変換する関数pairList.例えば以下のような動作をする.

# pairList [1,2,3];
val it = [(1,1), (2,2), (3,3)] : int * int list

3. リストのリストを1段階のリストに変換する関数flatten.例えば以下のような動作をする.

# flatten [[1],[2,3],[4]];
val it = [1, 2, 3, 4] : int list

4. 文字列のリストを受け取り,それら文字を連結して得られる文字列を返す関数:implodeString.例えば以下のような動作をする.

# implodeString ["It", " is", " the", " time", " for", " a", " new", " ML", " language."];
val it = "It is the time for a new ML language" : string

解答例


[ トップ | 目次 | 前ページ | 次ページ ]

Last modified:2007/08/05 09:01:08
Keyword(s):
References:[ML&Cチュートリアル 目次] [[ML] 演習の解答例:リストと多相関数]