2017-07-26 59 views
1

嘿,我有我的代码有问题。下面的代码应该删除列表中的前2个,然后连接它们。因此结果答案将是1,2。在haskell中连接两个整数

first = [1,2,4,5,6,7] !! 0 
second = [1,2,4,5,6,7] !! 1 
newans = first ++ second 
+1

你是什么意思*删除*? –

+2

我想你想'newans = [first,second]' – 4castle

+1

'!!'只是一个索引操作符:'[1,2,3] !! 0 == 1'。 – ForceBru

回答

2

不能从列表中删除元素:Haskell是声明的意义,一旦你建立一个列表aa将始终与相同名单的工作。

然而,您可以构造一个新的列表,而不是前两个元素,并创建一个新的列表与前两个元素。例如:

get_remove_2 :: [a] -> ([a],[a]) 
get_remove_2 (a:b:cs) = ([a,b],cs) 

因此,我们构建具有与[a,b]表达的前两个元素列表。

此函数将输入一个列表[a]并返回一个2元组作为第一个元素列表包含两个元素:原始列表的前两个元素和第二个元素列表中前两个元素是不存在。

请注意,此功能仅适用于给定列表包含至少两个元素。否则会出错。