私は単純なyesodテンプレートをベースにしたプロジェクトに取り組んでいます。私は関数型プログラミング、haskell、およびYesodを初めて使用しているので、おそらくYesodの経験を持つ人にとっては明らかです。現時点で私はこのlibraryを使ってgithub APIコールを作成しようとしています。私はいくつかのタイプの問題を抱えているし、私はそれらを解決するアプローチを開始する方法もわからない。Yesod:Haskell用Github API v3ライブラリの使用
私のハンドラhereを見つけることができます。
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
- GitHub.userInfoForR "マイク・火傷"' '書き込みpossibleUser = GitHub.userInfoForR "マイク・火傷"' – arrowd
こんにちはarrowdをしましょう。これは実際に "possibleUser"行に関連するエラーを取り除きますが、その変数を次の "result line"で使用すると、次のエラーが発生します(おそらく、 'in'で構造化する必要があります): 'Handler/Home.hs :49:59: ' '予想された型に一致できませんでした 'どちらかa0 GitHub.User'''実際の型' GitHub.Request k0 GitHub.User'' ' 'どちらか'の3番目の引数、 possibleUser'' '式内:' '(("エラー: "<>)。tshow)formatUser possibleUser' – StarStuffSteve