我在IO上下文中有几种数据类型,例如:
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没有给我任何能够实现这个功能的函数。我不确定是否可能,因为函数的输入可能是无限的。
有人有解决方案或者解释为什么不可能吗? 我知道使用列表代替函数是一种选择,但如果可能的话,我更喜欢使用函数。