0
我有這樣的代碼:如何從列表的第一個和最後一個項目Haskell中創建一個新列表?
fnl list = [x | x <- list, x==list!!((length list)-1)]
這給了我一個數組的最後一個項目。我怎樣才能改善這一點,以獲得第一個項目呢?
我有這樣的代碼:如何從列表的第一個和最後一個項目Haskell中創建一個新列表?
fnl list = [x | x <- list, x==list!!((length list)-1)]
這給了我一個數組的最後一個項目。我怎樣才能改善這一點,以獲得第一個項目呢?
最簡單的解決辦法是
fnl list = [head list, last list]
head
給你一個列表的第一個元素,last
給出了最後一個。這樣可以避免將兩個索引都加入到列表中(通常應該避免這種情況,尤其是如果您可以選擇使用Prelude函數,就像在這種情況下一樣)並獲取它的長度。
爲什麼不只是'fnl list = [head list,last list]'? – Michail
請注意,您正在使用列表,而不是數組。 – duplode
@Michail這是一個答案,只要你添加一些額外的解釋。 – Zeta