C언어는 배열 인덱스를 0부터 시작하는데

이유는 인덱스가 배열 포인터와의 오프셋과 일치하기 위함이다.

다익스트라도 0부터 인덱스 하는게 좋다고 했어.

http://lambda-the-ultimate.org/node/1950


하지만 이 방식이 함수형 언어에까지 그대로 전해져야 하는 이유는 뭐지?

오프셋이나 메모리 구조 그런거 다 제쳐두고, 수학적으로만 생각할 때

첫번째 항이 1이 아닌 0으로 접근해야 한다는 것은 상당히 이질적이라고 생각함.


0은 공집합 을 의미해야 한다고 보는데...


하스켈에서 가장 아쉬운 부분이 이거. 왜 리스트의 첫번째 원소를 0으로 뽑아야 하는지. n번째 원소를 n-1로 뽑아야 하는지..

옛날에 코세형한테도 물어봤지만, 저 위에처럼 오프셋 얘기만 하더라고.



형들은 인덱스 0부터 시작이 좋아, 1부터 시작이 좋아?

그 이유는?

함수형에서도 인덱스를 0부터 시작해야 하는 이유는?