簡體   English   中英

Haskell中的列表操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM