Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数组插入构造函数Haskell_Haskell - Fatal编程技术网

将数组插入构造函数Haskell

将数组插入构造函数Haskell,haskell,Haskell,我有一个函数,返回这种形式的数组 [1.2,1.3,2.3] 我创建了数据: data SpecielNumber = SP Float Float Float 如何从返回要生成的编号的foo函数中执行操作 像这样的事情是行不通的:( 谢谢希望这些能给你一些线索。你应该多读一些 > data SpecielNumber = SN Float Float Float deriving (Show) > let makeSN [x,y,z] = SN x y z >

我有一个函数,返回这种形式的数组

  [1.2,1.3,2.3]
我创建了数据:

data SpecielNumber = SP Float Float Float
如何从返回要生成的编号的
foo
函数中执行操作

像这样的事情是行不通的:(


谢谢

希望这些能给你一些线索。你应该多读一些

> data SpecielNumber = SN Float Float Float deriving (Show)   
> let makeSN [x,y,z] = SN x y z

> makeSN [1.2,1.3,2.3]
SN 1.2 1.3 2.3

首先,
[1.2,1.3,2.3]
不是数组,而是列表

其次,您的数据类型
SpecialNumber
需要一个构造函数名称。因此,您可以在其构造函数中设置如下列表:

data SpecialNumber = SpecialNumber [Float]
第一个
SpecialNumber
是类型的名称。第二个是构造函数的名称。这是不同的名称空间。除非您使用不同的变体定义类型,否则通常会有两个匹配,例如:

data Either a b = Left a | Right b

是可选的构造函数,类型称为

哦,我明白了..谢谢。答案讨论了命名约定方面的次要问题。这可能足以说明“单个数据构造函数与类型构造函数具有相同的属性是很常见的;两者总是可以通过上下文来区分的”,并保持不变。
data Either a b = Left a | Right b