从另一个模块导入 Newtype(s)

Importing Newtype(s) from another module

我最近在学习 PureScript 并做了一个在屏幕上绘制立方体的小应用程序。一切都很好,我在 Main 模块的顶部定义了一些 newtype,如下所示:

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 时它仍然给了我一个错误。错误是这样的:

in module Main at src/Main.purs line 30, column 10 - line 30, column 18

Unknown data constructor Vec3

See https://github.com/purescript/documentation/blob/master/errors/UnknownName.md for more information, or to contribute content related to this error.

我是函数式编程和 PureScript 的新手。这个错误是什么意思?

module Transforms (Vec2, Vec3, perspectiveDivide) where 仅导出类型构造函数。

您还想使用 Vec2(..) 导出数据构造函数。相同的语法适用于导入。