Haskell X{..}<;-getYesod表示法

Haskell X{..}<;-getYesod表示法,haskell,yesod,Haskell,Yesod,我在Yesod web应用程序的示例代码中看到了这种符号,但我不知道它的含义: getHomeR :: Handler Html getHomeR = do App {..} <- getYesod getHomeR::Handler Html getHomeR=do App{..}这些被调用-给定一个记录定义(App,在本例中),模式App{..}将所有字段名带入范围。例如,给定以下记录定义 {-# LANGUAGE RecordWildCards #-} data Test

我在Yesod web应用程序的示例代码中看到了这种符号,但我不知道它的含义:

getHomeR :: Handler Html
getHomeR = do
    App {..} <- getYesod
getHomeR::Handler Html
getHomeR=do
App{..}这些被调用-给定一个记录定义(
App
,在本例中),模式
App{..}
将所有字段名带入范围。例如,给定以下记录定义

{-# LANGUAGE RecordWildCards #-}
data Test = Test { a :: Int, b :: Int }
您可以在模式中对其进行匹配,将
a
b
字段纳入范围,例如

sumTest :: Test -> Int
sumTest Test {..} = a + b

您可以直接链接到GHC文档中的一节。例如:
sumTest :: Test -> Int
sumTest Test {..} = a + b