#質問1:String の末尾のスペースを落とす方法はありますか?
#たとえば "foo bar baz " の末尾のスペースだけ落としたいんです。
#reverse . dropWhile isSpace . reverse は、あんまりだと思っています。
#質問2:重複した最大の文字列を探す問題を考えます。たとえば、"banana" だと "ana"。
#定石では tails を使った後、ソートします。
#sort . tails $ "banana"
["","a","ana","anana","banana","na","nana"]
#これを x だとして、zip x (tail x) を y だとします。
#[("","a"),("a","ana"),("ana","anana"),("anana","banana"),("banana","na"),("na","nana")]
#filter (uncurry isPrefixOf) y で重複したものだけを取り出します。
#[("","a"),("a","ana"),("ana","anana"),("na","nana")]
#map fst すると
#["","a","ana","na"]
#この中から、最大長の文字列を探す場合、何を使うのがいいですか?
#maximumBy (compare `on` length) しか思いつかなくてゲッソリしています。
#教える相手は初心者なので、もうちょっと簡単にしたいんですが。。。
#maximumBy には空リストを与えるとエラーになるようですし。
#問題1:
#正規表現 /^(.*)\w*$/ も、バックトラックするのだし、reverse でもいいのかなぁ。
#さっきの正規表現は間違いでした。
#/\s*$/ ですね。