함수형 프로그래밍을 공부하면 대수적(algebraic)이라는 표현을 접하게 됩니다. 아는것 같았지만.. 막상 설명하라고 하면 못하는… 항상 애매하게, 두리뭉실하게 넘어가다가 이번에 정리를 합니다.

먼저 대수적 이란 무엇인지 부터 정리하겠습니다. 위키에 정의를 보면

수론에서, 대수적 수(代數的數, 영어: algebraic number)는 유리수 계수의 일계수 다항식의 근을 이루는 복소수이다.

분명 한글인데.. 뭔 소린지….

하나씩 파악해보겠습니다. 먼저 수론이란?

정수론(整數論, 영어: number theory) 또는 수론(數論)은 수학의 한 분야로, 각종 수의 성질을 대상으로 한다. 정수론은 수학의 왕자라고 불리는 카를 프리드리히 가우스 덕분에 크게 발전되어서 현재는 기하학, 대수학, 해석학과 함께 수학의 주요한 분야들 중 하나이다.

이거.. 이러다가… 링크에 링크에… 정리만하다가 끝날거 같기 때문에… 개인적으로 궁금한 점 들만 정리하고 넘어가겠습니다.

우선 수론은 정수론 과 같은 의미를 가지고 있다고 해석해도 될것 같습니다. 그리고 주요 특징으로는 “수학의 한 분야로, 각종 수의 성질을 대상으로 한다.” 인것 같습니다. 정수의 성질을 연구하는 학문을 수론 혹은 정수론 이라고 합니다.

그렇다면 대수학 or 대수적 (algebra)이란? 무엇일까요? 처음에는 큰수학?? 이런 말도안되는 생각을 했었는데..

대수학은 수 대신에 문자를 사용하여 방정식의 풀이 방법이나 대수적 구조를 연구하는 학문이다.

일반적으로 우리가 흔히 알고있는 문자를 사용한 대수학은 르네 데카르트 라는 사람이 완성했다고 합니다. 데카르는 미지량을 알파벳의 첫 부분(a, b, c …) 부터 사용해서 표현했고, 기지량은 끝에서부터(x, y, z…) 으로 사용했고, 현재 우리가 사용하는 방식과 유사합니다.

미지량, 기지량도 생소한 단어일 겁니다. 미지량이란 아직 알지 못하는 값을 나타내고, 기지량이란 알고 있는 값을 나타냅니다.

우리는 알게 모르게 대수학을 굉장히 많이 사용하고 있습니다. 예를들어 붕어빵 10개를 5천원에 샀습니다. 우리는 개별 가격이 알고 싶을 수도 있습니다. 일반적으로 암산으로 계산을 하지만, 식으로 정리한다면 10 * x = 5000 으로 표현 할수 있습니다.

10 * x = 5000

10 * x / 10 = 5000 /10,

x = 500

여기서 x는 미지량이고 이런 과정으로 문제를 해결하는게 대수학입니다.

이런 기호수학의 개념들이 계속해서 발전해 17세기 이후에 변수와 함수의 개념 발달에 결정적인 역할을 했다고 합니다. 프로그래밍이 생각납니다… 변수와 함수라니…

대수학은 계속 발전 했고 현재는 대표적으로 선형대수학과 현대대수학이 있다는데 더 깊게 들어가지 않겠습니다.

대수학이 뭔지, 대수가 뭔지는 알았습니다. 그럼 원래 문제인 대수적 타입(Algebraic data type)이란?