2012-07-08 14 views
5

저는 다음과 같은 타입 동의어 인 Yesod가 무엇을하는지 이해하려고합니다. 나는에서 예를 찾을 수 없습니다하스켈 타입 동의어

type HtmlUrlI18n msg url = Translate msg -> Render url -> Html

는 당신에게 하스켈 또는 -> 현재와 유형 동의어의 하스켈 wikibook을 배운다. 모든 링크 또는 설명을 많이 주시면 감사하겠습니다. 감사.

+9

이것은 단지 함수 유형과 동의어입니다. –

+3

'HtmlUrlI18n msg url'을 볼 때마다,'Translate msg -> Render url -> Html'으로 바꾸십시오. – sdcvvc

+0

고양이가 말한 것에 덧붙이면 : 오른손 유형 서명이 다소 다루기 힘들고 기억하기 어려울 수 있기 때문에이 작업이 완료되었습니다. 많은 인수 중 하나 인'Translate msg -> Render url -> Html'을 취하는 함수가 있다고합시다. 그것은 빨리 읽을 수 없게되고 아마도 불분명하게됩니다. 반면에'HtmlUrlI18n msg url'을 취하는 것이 훨씬 낫습니다. – gspr

답변

4

a (long to write down) 함수 유형과 동의어입니다. 예를 들어, 다음은 유효해야합니다. Haskell

--Example of a function type synonym 
type StrFn = String -> String 

foo :: StrFn 
foo s = s ++ "!" 

--Example of a function type synonym with type parameters 
type Fn a = a -> a 

bar :: Fn String 
bar s = s ++ "?" 
+0

답변 해 주셔서 감사합니다. 매우 도움이됩니다. – David

+0

@David : 답변을 수락 된 것으로 표시하는 것을 잊지 마십시오. 질문에 대답하지 않은 탭이 표시됩니다. 원하는 경우 자신의 답변을 쓸 수도 있습니다. – hugomg

+0

감사합니다. 나는 그것을했다. – David