Ich arbeite an einem Projekt, das auf der einfachen Jaesod-Vorlage aufbaut. Ich bin neu in der funktionalen Programmierung, Haskell und Yesod, also ist es wahrscheinlich etwas für jemanden mit Yesod Erfahrung. Im Moment versuche ich Github API-Aufrufe mit dieser library. Ich erhalte einige Probleme mit den Typen, und ich bin mir nicht einmal sicher, wie ich anfange, sie zu lösen.Yesod: Verwenden von Github API v3 Bibliothek für Haskell
Sie können meinen Handler here finden.
Handler/Home.hs:43:19:
Couldn't match expected type ‘HandlerT
App IO (Either a0 GitHub.User)’
with actual type ‘GitHub.Request k0 GitHub.User’
In a stmt of a 'do' block:
possibleUser <- GitHub.userInfoForR "mike-burns"
In the expression:
do { maid <- maybeAuthId;
possibleUser <- GitHub.userInfoForR "mike-burns";
result <- either (("Error: " <>) . tshow) formatUser possibleUser;
defaultLayout
(do { (asWidgetT GHC.Base.. toWidget)
((blaze-markup-0.7.1.1:Text.Blaze.Internal.preEscapedText
GHC.Base.. Data.Text.pack)
"<p>Your current auth ID: ");
(asWidgetT GHC.Base.. toWidget) (toHtml (show maid));
(asWidgetT GHC.Base.. toWidget)
((blaze-markup-0.7.1.1:Text.Blaze.Internal.preEscapedText
GHC.Base.. Data.Text.pack)
"</p>\n");
.... }) }
Handler/Home.hs:44:38:
Couldn't match type ‘Text’ with ‘HandlerT App IO a1’
Expected type: a0 -> HandlerT App IO a1
Actual type: a0 -> Text
In the second argument of ‘(.)’, namely ‘tshow’
In the first argument of ‘either’, namely
‘(("Error: " <>) . tshow)’
Handler/Home.hs:44:45:
Couldn't match type ‘Text’ with ‘HandlerT App IO a1’
Expected type: GitHub.User -> HandlerT App IO a1
Actual type: GitHub.User -> Text
In the second argument of ‘either’, namely ‘formatUser’
In a stmt of a 'do' block:
result <- either (("Error: " <>) . tshow) formatUser possibleUser
Statt 'possibleUser <- GitHub.userInfoForR "mike-brennt"' 'schreiben possibleUser = GitHub.userInfoForR "mike-brennt"' – arrowd
Hallo arrowd lassen. Das beseitigt tatsächlich Fehler, die sich auf die "possibleUser" -Zeile beziehen, aber dann verursacht die Verwendung dieser Variablen in der nächsten "Ergebniszeile den folgenden Fehler (vielleicht muss ich sie mit einem 'in' strukturieren?):' Handler/Home.hs : 49: 59: ' ' Der erwartete Typ konnte nicht gefunden werden. Entweder a0 GitHub.User'' 'mit dem tatsächlichen Typ 'GitHub.Request k0 GitHub.User'' ' Im dritten Argument von' entweder ', nämlich' possibleUser'' 'Im Ausdruck:' 'entweder ((" Error: "<>). tshow) formatUser possibleUser' – StarStuffSteve