[英]List operation in Haskell
我有這個類型的列表([(Double,Double)],[(Double,Double)])
。 example list = ([(1.0,1.0), (2.0,1.0), (1.0,1.0), (1.0,3.0)],[(1.0,4.0), (1.0,5.0), (1.0,1.0), (1.0,2.0), (1.0,3.0), (1.0,4.0), (1.0,5.0)])
在第四個元組(1.0,3.0)之后,我將如何訪問所有數據。 我已經嘗試過tail函數,但是似乎沒有用。 謝謝。
好吧,對於一個,您的列表不是列表,而是一個元組:)
type MyData = (MyList, MyList)
type MyList = [MyListElem]
type MyListElem = (Double, Double)
現在,訪問第二個列表就是snd
。
snd :: (a,b) -> b
因此,在您的情況下:
snd :: MyData -> MyList
或者,可以使用Lens
,直接在其上使用鏡頭:
list ^. _2
它不是列表,而是列表的元組。 實際上,是一個元組列表的元組。
要獲取元組的第二部分,請使用snd
命令:
snd ([(1.0,1.0), (2.0,1.0), (1.0,1.0), (1.0,3.0)],[(1.0,4.0), (1.0,5.0), (1.0,1.0), (1.0,2.0), (1.0,3.0), (1.0,4.0), (1.0,5.0)])
這樣產生:
[(1.0,4.0),(1.0,5.0),(1.0,1.0),(1.0,2.0),(1.0,3.0),(1.0,4.0),(1.0,5.0)]
從這里開始,您可以繼續使用tail
或!!
獲得第二個列表的各個部分!!
操作員。
為了完整起見,可以使用fst
命令獲得元組的第一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.