有问题的一些例子,在学习抄本通过的例子书。具体而言,这是第9.3节的代码:
main :: Eff (canvas :: CANVAS) Unit
main = void $ unsafePartial do
Just canvas <- getCanvasElementById "canvas"
ctx <- getContext2D canvas
setFillStyle "#0000FF" ctx -- this's line 16 referred to in the error message
fillPath ctx $ rect ctx
{ x: 250.0
, y: 250.0
, w: 100.0
, h: 100.0
}给出以下错误:
在模块Example.Rectangle中,src\Example\Rectangle.purs第16行,第3列-第16行,第29列 类型的结果 Context2D 在do符号块中隐式丢弃。你可以用<.若要显式放弃结果,请执行以下操作。 当应用丢弃类型的函数丢弃时,t0 => Bind t1 => t1 t0 -> (t0 -> t1 t2) -> t1 t2对参数(setFillStyle "#0000FF") ctx,同时在值声明主目录中推断丢弃类型((setFillStyle "#0000FF") ctx)。 其中t0是未知类型,t2是未知类型,t1是未知类型。 有关更多信息,请参见https://github.com/purescript/documentation/blob/master/errors/NoInstanceFound.md
建议的错误没有帮助,我也搞不清楚“丢弃”是怎么做的。我还注意到了类似的问题,例如,8.17节中的“模拟”函数。如果我尝试使用"_ <-“赋值的建议,就会出现更多的随机错误。
(这是使用PSCi 0.11.5)
发布于 2017-07-06 16:29:05
不允许在do块中隐式丢弃值。
您可以:-显式忽略值:_ <- setFillStyle.-或者,如果返回值为Unit (例如Eff外汇单位),则只需从“前奏”导入“丢弃”即可。
https://stackoverflow.com/questions/44941080
复制相似问题