2011-11-30 5 views
1

3 요소 터플의 첫 번째 요소를 삭제할 수있는 방법이 있습니까?이 목적을 위해 다른 함수를 만들지 않고도 2 요소 튜플을 얻을 수 있습니까?3 요소 터플의 첫 번째 요소 삭제

(A, B, C) -> (b, c)

기본적 I는 3 요소 터플을 생성하는 함수를 이용해야하고 I 함수를 사용해야 만 그것의 마지막 두 요소를 사용합니다.

답장을 보내 주셔서 감사합니다.

답변

11

귀하의 질문 거의 필요한 기능 자체가 있어요!

이 필요한 기능입니다. 즉석에서 정의 된 "익명"함수이므로 이름을 지정할 필요가 없습니다. 그래서 예를 들어, 당신은 당신이 someFunc someValue의 두 번째와 세 번째 구성 요소를 얻을 수

(\(a,b,c)->(b,c)) (someFunc someValue) 

을 할 수

someFunc :: someType -> (Int, Char, Bool) 

이있는 경우.

+0

이 실제로 내가 생각 최초의 일이었다, 그러나 그것은 *이다. 나는이 같은 문제에 대해 더 나은 매칭 ('let' 또는'where')을 제공하는 다른 것을 사용한다고 생각합니다. –

+0

@TikhonJelvis : 참. 그러나 함수가 "인라인"으로 정의되고 다른 이름을 소개하지 않기 때문에 나는 그렇게 나쁘지 않다고 생각했습니다. :-) – Prateek

+1

하, 그건 사실 내 논리도 마찬가지야. 그러나 그때 나는 선생님과 학년생이 얼마나 까다 롭다는 것을 까다롭게 생각하는 것을 기억했습니다. –

5

let과 같은 구문 구문을 사용하여 패턴 일치를 수행 할 수 있습니다. 그래서 당신이 좋아하는 뭔가를 할 수 :

let (a, b, c) = triTuple in fn (b, c) 
1

당신은 case를 사용할 수 있습니다 함수를 작성 *

case x of (a, b, c) -> (b, c)