Haskell 使Postgresql.Simple查询结果可用于.hs文件的其余部分
我有一个传感器,可以将值放在postgres表中,我使用postgresql simple在我的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
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 ...