Sri*_*ati 3 newtype purescript
我最近正在学习PureScript,并做了一个小应用程序,可以在屏幕上绘制一个立方体。一切都很好,我newtype在Main模块顶部定义了一些,如下所示:
newtype Vec2 = Vec2
{
x :: Number
, y :: Number
}
newtype Vec3 = Vec3
{
x :: Number
, y :: Number
, z :: Number
}
Run Code Online (Sandbox Code Playgroud)
我还获得了一些进行转换等功能的功能,perspectiveDivide我想移至另一个模块Transforms以更好地组织。因此,我将这些类型移到了“转换”模块中,并导出了它们。
module Transforms (Vec2, Vec3, perspectiveDivide) where
Run Code Online (Sandbox Code Playgroud)
并且上述类型遵循此。
现在,我尝试使用选择性导入功能将它们导入到主模块中,但是没有用。
import Transforms (Vec2, Vec3, perspectiveDivide)
Run Code Online (Sandbox Code Playgroud)
但是在尝试使用projectToScreen仍在主模块中的函数时,仍然给我一个错误。错误是这样的:
在src / Main.purs模块Main中的第30行第10列-第30行第18列中
Run Code Online (Sandbox Code Playgroud)Unknown data constructor Vec3请参阅 https://github.com/purescript/documentation/blob/master/errors/UnknownName.md 了解更多信息,或提供与此错误相关的内容。
我既是函数式编程的新手,也是PureScript的新手。这个错误是什么意思?
module Transforms (Vec2, Vec3, perspectiveDivide) where 仅导出类型构造函数。
您还想使用Vec2(..)导出数据构造函数。相同的语法适用于导入。