2014-01-14 4 views
-1

Im은 하스켈을 이해하려고 노력하고 있는데, 나는이 함수의 타입이 무엇이며 어떻게 호출 할까? 우리가 가지고가는 경우에이것의 선언 haskell 메서드

two f(a,b) = f a b 
+2

난 당신이 여기서 무엇을 묻고 있는지 확실하지 않습니다. '(a, b)'는 튜플인가? 함수를 정의하는 방법이나 함수의 유형에 대한 질문입니까? – Abizern

+0

전화하는 방법? 나는 '운이 좋았다'고 말할 것입니다! – Ingo

+0

예 전 두꺼비라고 생각합니다. 나는 두 가지에 대해 이야기합니다. ... ... – user3157778

답변

3

는, 예를 들어, Int의 인수는 다음 two의 종류는 다음과 같이이다 :

two :: (Int -> Int -> Int) -> (Int, Int) -> Int 
two f (a,b) = f a b 

예 :

two (*) (3,4) 
12 

설명 :

2 개의 인수를 취하는 함수를 사용하고 있습니다. (Int -> Int -> Int) 및 튜플 (Int, Int)을 사용하고이 함수를 ab에 적용합니다. 제한하지 않을 경우

실제의 형태는 다음과 같이 실제로 :

:t two 
two :: (t1 -> t2 -> t) -> (t1, t2) -> t 

예를 들어 다른 일이 가능 정도 :

two (++) ("he","llo") 
"hello" 

(등 등)

+0

'two'의 타입은'Int'에 꽤 명확하게 제한되어 있지 않다는 것을 혼란스럽게 나타내고 있습니다. 실제 타입으로 소개하는 것이 낫지 않겠습니까? 필요하다면,'Int'를 사용하여 구체적인 예를 제공 하시겠습니까? – amnn

+0

true이면 형식이 제한되지 않습니다. 내가 느낀'Int'의 예가 더 이해하기 쉬웠습니다. 나는 그것을 더 명료하게 기록 할 것이다. – vikingsteve

관련 문제