Ich habe versucht, eine einfache und intuitive Möglichkeit zu finden, Datenbanken mit Haskell zu verwenden. Ich habe diesen Code aus dem Yesod-Buch genommen und versucht, ihn aufzuräumen, damit er einfacher zu verstehen und zu verwenden ist .
%Vor%Dieser Code fast funktioniert, aber ich bekomme den folgenden Fehler, den ich nicht beheben konnte.
%Vor%Irgendwelche Vorschläge, die mich in die richtige Richtung weisen, würden geschätzt.
Mit
%Vor% Der Typ von updateDB "Frank Silver" 40
wird als IO ()
bezeichnet, da dies der Standardtyp für main
ist (für einige IO a
muss der Typ a
eingegeben werden). Aber aus der Definition wird der Typ als MonadRescource m => m a
für einige a
(wahrscheinlich a = ()
, aber ich bin mir nicht sicher) abgeleitet, und es gibt keine instance MonadResource IO
. Sie benötigen also etwas, um die updateDB
in eine IO
Aktion zu transformieren, was normalerweise runResourceT
ist, was eine ResourceT m a
in eine m a
(hier m = IO
) umwandelt, also
funktioniert.