teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

恐らく混乱しているであろう点について細かく補足

2021/07/24 01:16

投稿

igrep
igrep

スコア433

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段階に分けて**考えないといけないので、ご注意ください。