Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 使Postgresql.Simple查询结果可用于.hs文件的其余部分_Haskell - Fatal编程技术网

Haskell 使Postgresql.Simple查询结果可用于.hs文件的其余部分

Haskell 使Postgresql.Simple查询结果可用于.hs文件的其余部分,haskell,Haskell,我有一个传感器,可以将值放在postgres表中,我使用postgresql simple在我的main::IO()函数中读取它们,并在queryResult之后使用return queryResult。如何在Haskell中将值从一个函数传递到另一个函数,而不考虑其来源?您可以在函数调用中将该值作为参数传递。 考虑: main :: IO () main = do queryResult <- return ["True", "False"] mapM_ print queryR

我有一个传感器,可以将值放在postgres表中,我使用postgresql simple在我的
main::IO()
函数中读取它们,并在
queryResult之后使用
return queryResult
。如何在Haskell中将值从一个函数传递到另一个函数,而不考虑其来源?您可以在函数调用中将该值作为参数传递。 考虑:

main :: IO ()
main = do
  queryResult <- return ["True", "False"]
  mapM_ print queryResult
  let parsedResults = lightBoolHandler queryResult
  mapM_ print parsedResults

lightBoolHandler :: [String] -> [Bool]
lightBoolHandler = map read

谢谢我想我已经根据你的建议很好地改编了我的剧本。然而,我仍然坚持这样一个事实,即
lightBoolHandler::[String]->[Bool]
确实需要能够成为
lightBoolHandler::[Only String]->[Bool]
。我将如何调整该功能?我正在沿着这些思路尝试一些事情,尽管运气不好:
lightBoolHandler=fmap(read.fromOnly)
我可以通过
lightBoolOnlyRemover=map fromOnly
Only
中获得它。但是我不知道如何也应用
read
,使它成为一个真正的
Bool
@FyodorSoikin-这是我尝试的第一件事,但它返回
Only
中的值(例如
Only{fromOnly=“true”}
),然后以以下消息结束:
***异常:Prelude.read:no parse
这里有一个提示:
read“TRUE”返回什么?读“假”怎么样?确保完全复制我的评论中的文本,不要重新键入。
Only {fromOnly = "TRUE"}
Only {fromOnly = "TRUE"}
Only {fromOnly = "TRUE"}
Only {fromOnly = "TRUE"}
Only {fromOnly = "FALSE"}
Only {fromOnly = "FALSE"}
main :: IO ()
main = do
  queryResult <- return ["True", "False"]
  mapM_ print queryResult
  let parsedResults = lightBoolHandler queryResult
  mapM_ print parsedResults

lightBoolHandler :: [String] -> [Bool]
lightBoolHandler = map read
queryResult <- mapM_ print =<< ...
queryResult <- query ...
mapM_ print queryResult
let bools = lightBoolHandler queryResult
... use bools somehow ...