私はIOの文脈におけるいくつかのデータ型を持っているように:私のような一つのデータオブジェクトで一緒にそれらをすべて入れたい変容( - > b)の
a :: IO String
b :: IO FilePath
c :: String -> IO String
:
data Configdata = Configdata String FilePath (String -> String)
だから私はIOのコンテキストのうち、ちょうどIO Configdata
のうち、自身のためにそれぞれの値を取得する必要はありません。
解決策がないクリティカルポイントは、String -> IO String
をIO (String -> String)
に変換する方法です。 Hoogleはこれを実行できる機能を私に与えていません。
関数の入力が無限である可能性があるため、多分それが可能でないかどうかわかりません。
誰かが解決策または説明を持っていますか? 私は、関数の代わりにリストを使うことはオプションであることを知っていますが、可能であれば関数を使うことを好むでしょう。
これは実際には互換性がありません。 'String - > IO String'では、IO計算は' IO(String - > String) 'の引数に依存することができます。 – Bergi
@Bergiはそれを完全に述べました。これは、ApplicativeとMonadの主な違いです。 – user2297560