2017-07-26 54 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元組作爲第一個元素列表包含兩個元素:原始列表的前兩個元素和第二個元素列表中前兩個元素是不存在。

請注意,此功能僅適用於給定列表包含至少兩個元素。否則會出錯。