回答編集履歴
1
恐らく混乱しているであろう点について細かく補足
answer
CHANGED
@@ -40,4 +40,9 @@
|
|
40
40
|
|
41
41
|
という質問文からして、**この関数が「文字列のリスト」を扱っているにも関わらず、単なる文字列と混同してしまっている**ようです。
|
42
42
|
|
43
|
-
該当の箇所において`x`は`String`型、つまり文字列であり、Haskellではそのまま文字のリスト(`[Char]`)でもあります。なので、その箇所では空の文字列`""`と`[]`は完全に同じものとして扱われてしまうので、`x==[]=""`を`x==""=""`に変えても結果は何も変わりません。
|
43
|
+
該当の箇所において`x`は`String`型、つまり文字列であり、Haskellではそのまま文字のリスト(`[Char]`)でもあります。なので、その箇所では空の文字列`""`と`[]`は完全に同じものとして扱われてしまうので、`x==[]=""`を`x==""=""`に変えても結果は何も変わりません。本件のように**文字列のリスト**、言い換えると**文字のリストのリスト**を扱う場合は、リストが入れ子になっているので、
|
44
|
+
|
45
|
+
- 各要素(`test`関数でいうところの`x`)、における各要素(つまり文字)に対してどう繰り返し処理を行う(再帰呼び出しを行う)のか、という点と、
|
46
|
+
- 第一引数として受け取っている文字列のリストにおける各要素(つまり文字列)に対してどう繰り返し処理を行うのか、
|
47
|
+
|
48
|
+
以上の**2段階に分けて**考えないといけないので、ご注意ください。
|