Я теперь программист на Java, занимаюсь чтением и изучением haskell.Я пытаюсь написать простую программу для подключения (и отключения) к базе данных postgres с помощью драйвера HDBC postgres.Для простоты у меня нет никакой другой логики в этом.
Выдает ошибку типа функции.Я сделал правильный код, и если я удаляю разъединение, он работает с определенным типом.
Может кто-нибудь пролить свет на то, что мне не хватает, определяя тип для этой функции?Я хотел бы примирить вашу помощь.
спасибо!
пример кода:
import Database.HDBC
import Database.HDBC.PostgreSQL
import Database.HaskellDB
import Database.HaskellDB.HDBC.PostgreSQL
tryConnect :: Int -> (Database -> IO Connection) -> ()
tryConnect id =
do
c <- postgresqlConnect [("host","dbhost"),("dbname","db1"),("user","user1"),("password","test")]
disconnect c
return ()
Я получаю следующую ошибку от GHCi
Couldn't match expected type `(Database -> IO Connection) -> a'
against inferred type `IO ()'
In a stmt of a 'do' expression: disconnect c
In the expression:
do { c <- postgresqlConnect
[("host", "dbhost"), ("dbname", "db1"), ....];
disconnect c;
return () }
In the definition of `insrt':
insrt id
= do { c <- postgresqlConnect [("host", "dbhost"), ....];
disconnect c;
return () }
Ошибка, загруженные модули: нет.