gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:44:44 27 4
gpt4 key购买 nike

我最近在学习 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(..) 导出数据构造函数。相同的语法适用于导入。

关于purescript - 从另一个模块导入 Newtype(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47677049/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com