0
import Yesod
import Data.Text

data App = App

instance Yesod App

mkYesod "App" [parseRoutes|
               / Home GET
               |]

getHome :: String -> Handler Value
getHome  =  object ["name" .= ("Adam"::Text)]

main = warpDebug 2012 App

次のようにエラーをスローします。

 Couldn't match expected type ‘String -> Handler Value’
                with actual type ‘Value’
    Possible cause: ‘object’ is applied to too many arguments
    In the expression: object ["name" .= ("Adam" :: Text)]
    In an equation for ‘getHome’:
        getHome = object ["name" .= ("Adam" :: Text)]

objectプレリュードでは対象外です。これを定義するパッケージ/モジュールはどれですか? 上記の場合、キーと値のペアを取らないのはなぜですか?

4

1 に答える 1

2

objectプレリュードでは対象外です。これを定義するパッケージ/モジュールはどれですか?

Yesod.Json

上記の場合、キーと値のペアを取らないのはなぜですか?

キーと値のペアは問題なく使用できます。objectエラーメッセージは、それが を与えることを伝えていますが、タイプは ではなくであるValueと宣言しています。getHomeString -> Handler ValueValue

この場合、「考えられる原因」は誤解を招くようです。

于 2015-05-07T08:00:50.143 に答える