2014-10-18 44 views
0
提取列表從一個元組的單個值

所以我的元組在Haskell

lis = [(5,6), (5,3), (5,2)] 

我將如何提取元組的第一個值的列表,即5

我知道你(5,6),我會喜歡5.

更大的情況是能夠獲取元組列表的頭並將它與每個元素的值進行比較另一個元組列表來查看它是否匹配。

回答

2

這很簡單,只需使用fst功能從數組中提取的第一個值:

λ> let lis = [(5,6), (5,3), (5,2)] 
λ> fst $ head lis 
5 
+0

但是說我想在一個函數中使用這個我得到了聲明中的語法錯誤(意外符號「$」) – Sprout 2014-10-18 14:34:59

+0

@Richard你可以創建一個SSCCE嗎? – rightfold 2014-10-18 14:51:43

+0

不,我不確定那是什麼 – Sprout 2014-10-18 15:01:35

1

如果你想在另一個表達式中使用蘭巴:

(\(x, _) -> x) (head lis) 

或者這是否你想要一個自己的功能:

first :: (a, b) -> a 
first (x, _) = x 

有一個函數,不過,它叫做fst