要素と要素の間ごとに新しい要素を挟み込む。
join s [] = [] join s (c:cs) = c:s:(join s cs)
実行結果。
*Main> join '-' "abc" "a-b-c-"
あれ?
そうか,一番最後の要素も c:cs にマッチングしてるんだな。てことは”最後の要素”を表すパターンがあればいいのか。これでどうだ。
join s [] = [] join s (c:[]) = c:[] join s (c:cs) = c:s:(join s cs)
実行。
*Main> join '-' "abc" "a-b-c"
OK。