haskell-jp / random #102 at 2023-02-12 18:58:33 +0900

baseパッケージだけで PATH 環境変数に入ったパスを分割する、横着なワンライナーを考えました
mapM_ print . filter (/= ";") . groupBy (\a b -> a /= ';' && b /= ';') =<< getEnv "PATH"

Windows上でやったので PATH の区切りがセミコロンになっている点に注意
splitパッケージや、textパッケージの splitOn を使わず、 groupBy で済ませているのがポイント
; (あるいは :) を \n に置換して lines したほうが素直そうだなあ、と思ってしまいました^^
mapM_ print . lines . map (\case {':' -> '\n'; x -> x}) =<< getEnv "PATH"

LambdaCase つかっていますが^^;