“A ⇒ B” 관계로 B타입의 값에 의해서만 A타입의 값이 결정됨. 즉, 입력으로 결과를 반환하는 일 이외에 하지 않는 함수.
그 이점으로
어떤 표현식(expression)을 그 평가(evaluation) 결과로 바꾸어도 프로그램의 의미가 동일한 것. 표현식(expression)의 항등원. 이는 반환값에 불변(Invariant, Immutable state)을 강제한다.
그 대표적인 예로 String, StringBuilder. String을 불변적이므로 원본 문자열에 수정을 하면 새로운 문자열이 생성되어 참조에 투명하지만, StringBuilder는 가변적이므로 원본 문자열이 변경되므로 참조에 투명하지 못함.