ababup1192
6/28/2016 - 3:15 AM

Hな中間テスト 本番

Hな中間テスト 本番

H-Midterm Test

1. 以下に適切な語句を埋めよ

Haskellは何言語か。またその特徴を書け。


2. 以下に適切な語句を埋めよ

多くのプログラミング言語は文法や機能の挙動を確かめるために、REPLと呼ばれる対話環境が 用意されることがある。Haskellでは何というコマンドを使うか。また、REPLは何の略か。


3. 以下に適切なコードを埋め、さらに適切な語句を埋めよ

下記のコードで得られる結果を書け。また下記のようなリストを何と言い、Haskellの何という特徴により正常に動作するか書け。

take 5 [13,26..]

4. 以下に適切なコードを埋めよ

リスト [1,2,3,4,5] を返すコードを2種類の方法で定義せよ。ただし、(++)関数、自作の関数、リスト内包記法を使ってはならない。


5. 以下に適切な説明を書き、コードを埋めよ

リストとペアの違いを書き、2番目の要素を取り出すようなコードを、それぞれについて書け。


6. 以下に適切な語句を埋めよ

関数 head の型定義は次のようになっている、head :: [a] -> a 型定義中のa, b などの変数を何と言うか書け。 またこのような変数を利用している関数のことは何と呼ばれるか。 さらに、この変数と型の文字列の違いは何で判断するか書け。


7. 以下に適切なコードを埋めよ

以下のコードの型を書け。ただし、出来うる限り汎用的な型にせよ。


sum' [] = 0
sum' (x:xs) = x + sum' xs

8. 以下の型クラスについてのテーブルを埋めよ

型クラス制約関数定義
Eq等価性==, /=
順序
文字列表現
Readリテラル表記read
Enum
Bounded

9. 以下に適切なコードを埋めよ

任意の階乗を求める関数factorialを再帰とパターンマッチを利用して定義せよ。型定義も書くこととする。

10. 以下に適切なコードを埋めよ

max'を定義せよ。型定義も書くこととする。

11. 以下に適切なコードを埋めよ

任意のリストから最大値を見つけるmaximum'を定義せよ。

12. 以下に適切なコードを埋めよ

Intと任意の値を取り、受け取ったIntの数だけ任意の値を複製するreplicate'関数を定義せよ。

13. 以下に適切なコードを埋めよ

zipWith'を定義せよ。

zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]

14. 以下に適切なコードを埋めよ

1~100までのリストから奇数のみを取り出し、その後全ての要素を二乗する処理を、 リスト内包記法、高階関数の2パターンのうち、どちらかの方法で定義せよ。

15. 以下に適切なコードを埋めよ

map'を再帰・高階関数の2パターンのうち、どちらかの方法で定義せよ。

16. 以下に適切なコードを埋めよ

filter'を定義せよ。

17. 以下に適切なコードを埋めよ

関数を引数に取り、最初の2つの引数が入れ替わった関数を返すflip'をwhere、カリー化、ラムダ式の3パターンのうち 2パターンを定義せよ。

18. 以下に適切なコードを埋めよ

foldlを使いリストの合計を算出するsum'を定義せよ。

19. 以下に適切なコードを埋めよ

reverse'を畳込みを使って定義せよ。

20. 以下に適切なコードを埋めよ

以下の式を関数合成と関数適用演算子を利用して、書き換えろ。

sum (replicate 5 (max 6.7 8.9))