这可能是初学者的错误,因为这是我第一次“真正”尝试使用 Haskell。
我的相关代码片段如下所示:
import SDL (RendererConfig, RendererType(SoftwareRenderer), defaultRenderer)
defaultRendererType :: RendererType
defaultRendererType = case defaultRenderer of
RendererConfig rt _ -> rt
值得注意的是, ghc 并没有抱怨 的导入RendererConfig
,这让我觉得我用错了。
看起来它的来源RendererConfig
只有两个参数,所以我不确定为什么匹配在 case 表达式中不起作用。
data RendererConfig = RendererConfig
{ rendererType :: RendererType
-- ^ The renderer's acceleration mode
, rendererTargetTexture :: Bool
-- ^ The renderer supports rendering to texture
} deriving (Data, Eq, Generic, Ord, Read, Show, Typeable)
编辑
我得到的错误信息:
Main.hs:47:3: error:
Not in scope: data constructor `RendererConfig'
Perhaps you want to add `RendererConfig' to the import list
in the import of `SDL' (app/Main.hs:10:1-97).
|
47 | RendererConfig rt _ -> rt
| ^^^^^^^^^^^^^^