형이 며칠간 짬짬이 introduction to algorithms의 힙과 피보나치 힙을 구현해 보았다.

모닝 두뇌체조 차원에서 완성된 피보나치 힙 구현을 함수형 언어로 포팅하는 걸 생각해 보았다.

결론: 현존하는 고급 알고리즘들은 대부분 함수형만 써서는 구현이 복잡하고 의도한 계산속도를 달성하기 어렵다.

예를들면, 피보나치 힙 알고리즘 구현시 대량의 원형 데이터구조를 계속 바꿔주는 연산이 필요하기 때문에 함수형에서는 대량의 데이터 복제가 빈번히 일어나고, 대량의 데이터가 쓰레기로 버려지게 된다(대량의 뜻 - 늬들이 상상하는 이상으로 존나 많다고 보면 된다).

대부분의 알고리즘이 이런 식으로 발전한 근본적인 이유는, 기존 알고리즘 연구가 철저하게 람다머신이 아닌 튜링머신(폰노이만 모델) 기반으로 이루어졋기 때문.

이를 해결하는 현실적인 방법이 두가지 떠오르는데:
- 일부 함수형 언어에 한해서 다른 언어 (예, 클러져 라면 jvm과 자바) 이용
- 함수형에 젖절한 알고리즘으로 전환

전자는 코드 일부를 로우레벨로 바꾸는, 이미 오래전부터 하던 방법.
후자는 존나 알고리즘 고렙이 되야 되는데, 이건 전문 연구가 한테도 어려움.

형 얘기가 늘 그러하듯, 땔감에게는 전혀 무관한 얘기 ㅋ


람다가 너희를 자유케 하리라!