有沒有辦法刪除3元素元組的第一個元素,所以我得到了2元素元組而不必爲此另外創建一個函數?刪除3元素元組的第一個元素
(A,B,C) - >(B,C)
基本上我必須使用一個函數,該函數創建一個3元素的元組,然後我必須使用一個函數,它僅使用它的最後兩個元素。
謝謝你的回答。
有沒有辦法刪除3元素元組的第一個元素,所以我得到了2元素元組而不必爲此另外創建一個函數?刪除3元素元組的第一個元素
(A,B,C) - >(B,C)
基本上我必須使用一個函數,該函數創建一個3元素的元組,然後我必須使用一個函數,它僅使用它的最後兩個元素。
謝謝你的回答。
你的問題幾乎具有所需功能本身!
\(a,b,c)->(b,c)
是您需要的功能。這是一個動態定義的「匿名」函數,您不必指定它的名字。因此,舉例來說,如果你有
someFunc :: someType -> (Int, Char, Bool)
你可以做
(\(a,b,c)->(b,c)) (someFunc someValue)
得到的someFunc someValue
第二和第三部分。
你可以用幾個句法結構如let
做模式匹配。所以,你可以這樣做:
let (a, b, c) = triTuple in fn (b, c)
您可以使用case
:
case x of (a, b, c) -> (b, c)
其實,這是我想到的第一件事情,但*是*創建一個函數。我認爲使用其他提供模式匹配的東西('let'或'where')更適合這樣的問題。 –
@TikhonJelvis:的確如此。但由於該函數被定義爲「內聯」,並且沒有引入其他名稱,所以我認爲它不算太壞。 :-) – Prateek
哈,那其實也是我的邏輯。但後來我想起了一些老師和平地學家可能會無意義地挑剔。 –