Ko/$

From HaskellWiki
Jump to navigation Jump to search

$는 중위 연산자이다. $는 왼쪽에 있는 함수를 오른쪽에 있는 값에 적용한다. f xf $ x는 차이가 없어 보이지만 $는 우선 순위가 제일 낮고 우결합이라서 괄호를 생략할 수 있게 해준다. 예를 들어 아래 식에서 좌변과 같이 $를 쓰면 우변과 같은 의미가 된다.

f $ g $ h x = f (g (h x))

위 식의 좌변에서 $를 생략하면 뜻이 완전히 달라진다.

f g h x = ((f g) h) x

아래와 같이 고차 함수를 사용할 때도 $를 활용할 수 있다.

  • map ($ 0) xs
  • zipWith ($) fs xs

정의

$는 Prelude에 아래와 같이 정의되어 있다.

infixr 0 $
($) :: (a -> b) -> a -> b
f $ x = f x