대수적 자료형이란?대수적 자료형(Algebraic Data Types, ADT)이란 다른 타입의 결합으로 만들어지는 합성 타입을 말하며, 이러한 합성 타입은 수학적인 합(sum)과 곱(product)의 개념을 조합해서 만들어지게 됩니다.곱타입(product)은 여러 값을 함께 가지며(AND를 뜻합니다) 대표적인 예시로 튜플(tuple)이나 우리가 평소에 객체지향적으로 프로그래밍하면서 만들게 되는 class 같은 자료형의 모음이 있습니다.합타입(sum)은 타입의 모음 중 하나에만 속하게 되는 타입을 말하고(OR을 뜻합니다) 대표적인 예시로 enum class, sealed trait(interface) 같은 조합이 있습니다. 곱타입(product)과 합타입(sum)곱타입(product)곱타입은 개요에서 설..
kotlin이나 scala를 사용한다면 굉장히 익숙한 함수로 array나 list, map 등의 class에 구현되어 있는 map 함수가 있습니다.이 map 함수를 잘 몰라도 대강 내부 원소를 A 에서 B로 변환해주는구나 정도로 이해하고 사용해도 상관 없습니다만 이게 어떤 함수인지 알아야 더 잘 사용할 수 있으니 최대한 도움이 될 정도로 정리해보겠습니다.코드는 kotlin으로 작성할 예정이고 어떤 피드백이든 환영합니다.Functor와 map범주론에서 함자(函子, 영어: functor)는 두 범주 사이의 함수에 해당하는 구조로, 대상을 대상으로, 사상을 사상으로 대응시킨다. 함자는 작은 범주의 범주의 사상으로 볼 수 있다.- wikipediamap은 원래 카테고리 이론의 Functor 에서 유래된 함수입니..