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