回答編集履歴

1

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

2021/07/24 01:16

投稿

igrep
igrep

スコア428

test CHANGED
@@ -82,4 +82,14 @@
82
82
 
83
83
 
84
84
 
85
- 該当の箇所において`x`は`String`型、つまり文字列であり、Haskellではそのまま文字のリスト(`[Char]`)でもあります。なので、その箇所では空の文字列`""`と`[]`は完全に同じものとして扱われてしまうので、`x==[]=""`を`x==""=""`に変えても結果は何も変わりません。
85
+ 該当の箇所において`x`は`String`型、つまり文字列であり、Haskellではそのまま文字のリスト(`[Char]`)でもあります。なので、その箇所では空の文字列`""`と`[]`は完全に同じものとして扱われてしまうので、`x==[]=""`を`x==""=""`に変えても結果は何も変わりません。本件のように**文字列のリスト**、言い換えると**文字のリストのリスト**を扱う場合は、リストが入れ子になっているので、
86
+
87
+
88
+
89
+ - 各要素(`test`関数でいうところの`x`)、における各要素(つまり文字)に対してどう繰り返し処理を行う(再帰呼び出しを行う)のか、という点と、
90
+
91
+ - 第一引数として受け取っている文字列のリストにおける各要素(つまり文字列)に対してどう繰り返し処理を行うのか、
92
+
93
+
94
+
95
+ 以上の**2段階に分けて**考えないといけないので、ご注意ください。