私は Haskell 初心者で、現時点では xmonad の構成にのみ使用しています。
アイコンを取得するためにホームディレクトリをハードコードする必要がないようにするために、構成をgitリポジトリに入れたいです。
http://www.haskell.org/haskellwiki/How_to_get_rid_of_IOをチェックアウトしまし たが、理解するにはあまりにも無知です。
hd h = h =<< getHomeDirectory
getIcon::String -> String
getIcon out = ( "^i("++hd++".xmonad/dzen2/"++out )
これは実際に可能ですか?もしそうなら、どのように?私はディレクトリを操作したくありません。文字列としてパスが必要なだけで、それは私を殺しています。
エラーは次のとおりです。
Couldn't match expected type `[Char]' with actual type `(FilePath -> IO b0) -> IO b0' In the first argument of `(++)', namely `hd' In the second argument of `(++)', namely `hd ++ ".xmonad/dzen2/" ++ out' In the expression: ("^i(" ++ hd ++ ".xmonad/dzen2/" ++ out)
IOモナドがまったく削除されていないように見えます。
更新:わかりました。IO ルールに適応する方法を学びます。それまでは、ハードコーディングしたままにして、適切なビットを置き換えるスクリプトで構成ファイルを複製します。