Haskell Control.Arrow
のドキュメントでは、Kleisliの矢印とモナドの関係について語っていますが、これをどのように使用するかはわかりません。私はIOモナドを含むそれ以外の矢印と合っていると思う関数を持っているので、Kleisliの矢印が役立つかもしれないと思う。Kleisli arrows with monadsの使い方は?
ディレクトリの元のファイル名と変更されたファイル名のペアを返す次の関数を実行します。
import System.Directory
import System.FilePath
datedFiles target = do
fns <- getDirectoryContents target
tms <- mapM (fmap show . getModificationTime) fns
return $
zip fns $
zipWith replaceBaseName fns $
zipWith (++) (map takeBaseName fns) tms
私はそれを引き出すために持っていた場合、それはこのようなものになるだろう:
私はそれがKleisli矢印の使用の恩恵を受けることができると思うが、私は方法がわかりません。誰も指導を提供できますか?