Monad와 Swift

Swift는 함수형 패러다임을 적용한 언어입니다. 이 과정에서 함수형 언어의 영향을 많이 받았는데, 그중에서도 하스켈의 영향을 많이 받았습니다. 하스켈이란 언어에서 가장 인상적인 개념을 하나 꼽으라고 한다면 단연 모나드(Monad)를 꼽을 수 있습니다. 이번 포스트에서는 하스켈의 모나드 개념을 최대한 간략히 살펴보고, Swift에서 이것이 어떻게 활용되는 지 알아보도록 하겠습니다. [Read More]

Optional 살펴보기

Swift는 모든 변수가 값을 반드시 가지도록 강제합니다. 변수를 선언만하고 초기화를 하지 않으면 컴파일 단계에서 오류를 발생시키죠. 하지만 때로는 ‘값이 없는 상태’를 표현해야 할 때가 있는데, 이를 위해 Swift는 Optional이라는 기능을 제공합니다. [Read More]

Equatable, Comparable, Hashable

swift에서는 사용자 지정 타입에서도 라이브러리에서 제공하는 여러가지 기능을 사용할 수 있게 만들 수 있습니다. 이러한 기능을 사용하기 위해서는 사용자 지정 타입이 특정 메세지를 처리할 수 있는 지 여부를 알아야 하는데, Swift는 컴파일 타임에 이를 파악할 수 있도록 이를 프로토콜로 만들어 제공합니다. 프로그래머는 이렇게 제공되는 프로토콜을 사용자 지정 타입에서 채택하고 구현하기만... [Read More]