2017-12-13 16 views
0

그래서 난 내 ghcihaskell 유형 서명을 읽는 방법?

jkl x f y = f (map (+y) x) 

에이 문을 넣어 그리고 내가 다시 넣어이 나왔다.

jkl :: Num b => [b] -> ([b] -> t) -> b -> t 

하지만 읽을 때 혼란 스럽습니다. 내 이해에서 jkl은 [b], [b] 및 t 및 b를 취하는 형식 num입니다. 결국 그것은 t를 출력 할 것이다. 그것이 올바른 방법으로 그것을 읽을 수 있습니까? jkl를 호출 누구든지

답변

9
jkl :: Num b => [b] -> ([b] -> t) -> b -> t 

  • [b] (b의 목록을) 통과 유형 b 숫자 유형 중에서 선택되었다 bt
  • 보증합니다 (Num b 제약)를 선택이 첫 번째 인수로
  • 전달 함수 012 두 번째 인수로[b]을 복용하고 t)
  • 이 세 번째 인수로 b을 통과 반환
  • 다시 이중 콜론 ::=>제약라고 지방 화살표 사이에 무엇이든 최종 결과
4

t을받을 수 있습니다. 이 경우 제약 조건은 Num b입니다. 이 제약 조건은 b 유형이 무엇이든간에 유형 클래스 Num의 인스턴스 여야 함을 요구합니다.

굵은 화살표 다음에 함수 매개 변수의 유형이 표시되고 맨 끝에는 결과 유형이 표시됩니다.

매개 변수 :

  1. [b] - 즉 어떤 유형 b의 값의 목록.
  2. [b] -> t - b의 목록을 받아 단일 t을 생성하는 함수입니다.
  3. b - b 유형의 단일 값입니다.

마지막으로 함수 결과는 t입니다.