小编lex*_*449的帖子

在Haskell中创建数量递增的列表列表

给定起始编号和增量后,我希望能够在Haskell中创建列表列表。

例如:

>listIncrease 5 3
[[5], [5,6], [5,6,7]]
Run Code Online (Sandbox Code Playgroud)

我尝试使用递归函数,但无法正确获得该函数。

这是我目前拥有的:

>listIncrease 5 3
[[5], [5,6], [5,6,7]]
Run Code Online (Sandbox Code Playgroud)

我知道由于基本情况和基本情况不正确,以及递归步骤(因为您不能将[[Int]]设为[Int]),因此无法使用。

haskell list

3
推荐指数
1
解决办法
198
查看次数

遍历haskell中嵌套列表的新数据类型

我是在Haskell开发新类型的新手。这是我创建的类型:

data Tag = Table | Td | Tr deriving(Show)
data Table = Item Tag [Table] | Text String
Run Code Online (Sandbox Code Playgroud)

Tag数据类型还具有show函数,可将值打印到字符串中。我知道此类型可以递归工作,因为Table在第一个值中使用[Table]。我希望能够列出所有Tag元素和最里面的元素,这些元素将是Text或一个空列表。

例如:

data Tag = Table | Td | Tr deriving(Show)
data Table = Item Tag [Table] | Text String
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我尝试过的:

>example = Item Table [Item Td [Item Tr [Text "hello"]]]
>tableList example
["Table","Td","Tr","hello"]
Run Code Online (Sandbox Code Playgroud)

但这仅表明"table"。我不确定如何访问所有内部Tag值。

haskell types nested nested-lists

3
推荐指数
1
解决办法
58
查看次数

使用条件过滤元组列表以输出列表

我想在Haskell中使用标准的Prelude(无递归,无列表理解)来过滤元组列表,然后输出整数列表。它应检查包含整数的三元组列表,例如,

[(1,2,3), (2,3,7), (4,5,20)]
Run Code Online (Sandbox Code Playgroud)

并查看元素#1和#2的总和是否等于元素#3。如果是这样,请将元素#3放入列表中,然后输出列表。这是我正在寻找的输出:

>sumOfElements [(1,2,3), (2,3,7), (4,5,9)]
[3,9]
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

sumsOfElements :: [(Int, Int, Int)] -> [Int]
sumsOfElements list = filter (\(a,b,c) -> a+b==c) list
Run Code Online (Sandbox Code Playgroud)

这种工作,但它输出满足条件的元组列表。

>sumOfElements [(1,2,3), (2,3,7), (4,5,9)]
[(1,2,3), (4,5,9)]
Run Code Online (Sandbox Code Playgroud)

我不确定如何c从元组中提取该元素并将其附加到输出的新列表中。

haskell functional-programming tuples function filter

1
推荐指数
1
解决办法
60
查看次数