헤밍웨이의 피보나치수열

2018. 9. 12. 14:10Web Programming/_JAVA SCRIPTS

어니스트 헤밍웨이

E R N E S T

H E M I N G W A Y


1899-1961

내 평생 자바스크립트 보기를 난생처음 보듯 했다.


헤밍웨이 작품의 특징은 단도직입적이고 복잡하지 않은 산문이라는 점이다.

그리고 그의 작품에는 깔렸는 술책 같은 것이 없다.

소설에서 헤밍웨이는 눈으로 볼 수 있는 사실에 대해서만 기술한다.

즉 인물 간에 오가는 대화나 인물의 행위, 표면에 드러나는 특징 등에 대해서만 기술한다.

문장에서 사용하는 구조나 문법도 지극히 평볌하다.

문장은 짧고 쉬우며 어려운 단어가 나오지 않는다.


-피보나치 수열 ( javaScript )

function fibonacci(size) {

var first = 0, second = 1, next, count = 2, result = [first, second];

if ( size < 2 ) {

return "요청이 있었으나 충분하지는 않았다"

while(count++ < size) {

next = first+second;

first = second;

second = next;

result.push(next);

}

return result;

}

-> 수열의 첫 번째 항을 담을 first변수, 두번째 항을 담을 second 변수, 계산후 다음 값을 보관할 next 변수, 입력받은 수열의 사이즈와 비교할 count 변수, 피보나치수열을 참을 result 배열(첫항과 두번째 항은 1 2 로 초기화가 되어진).

입력받은 피보나치 수열의 크기가 2 미만일 경우는 처리를 하지 않는다. 1이라는것은 0하나만들어있기 때문에 굳이 해야하나 싶은 작업이기 때문. 0이거나 음수이면 그것은 피보나치수열이 될수 없을것 같다.


피보나치 수열 과제에 대해 헤밍웨이식 풀이는 불필요한 것 하나 없이 핵심적인 부분만 남은 상태이다.

그 어느 단어 하나, 변수 하나 낭비된 것이 없다. 화려하지도 않다. 불필요한 것을 쓰지 않겠다는 점 에대해 조금 집요하기 까지 하다.

이 코드에서 정교한 논리나 현란한 변수명은 불필요하다.

알아보기 쉬우며, 꼭 필요한 작업만을 수행한다. 그런 다음 옆으로 비켜서서, 피보나치 수열이 온전히 빛을 발할 수 있게 한다.


헤밍웨이는 어리석은 사람을 잘 참아내는 성격이 아니었다. 그러니 누군가가 헤밍웨이에게 피보나치 수열에 수가 하나도 없거나 하나만 있는 예외도 처리해 달라고 요청한다면, 그는 그냥 무시해버리거나 아니면 이렇게 불평할 것이다. "제가 조금 피곤하기도 하고... 그나저나 그런 요청은 바보같소만."



헤밍웨이식 피보나치 수열을 표현한 자바스크립트 코드가 무엇이 특이한것인지는 다음 글부터 작성할 다른 유명한 작가, 시인들의 방식을 확인해보면 알수 있을 것 같다. 

현재 코드는 매우 간결하고 깔끔하게 작성되었있다고 하지만 내 생각에는 평상시 우리들이 작성하던 코드와 다를게 없는 코드 같다...

그리고 피보나치 수열의 점화식을 보면

첫번째 항이 1로 정의된다.

first변수를 0이 아닌 1로 초기화를 해주면 맞지 않나 싶다.

수학지식이 많이 부족해 맞는말을 하는지는 잘 모르겠다.....

'Web Programming > _JAVA SCRIPTS' 카테고리의 다른 글

프로그램의 평가와 실행과정  (0) 2019.03.31
셰익스피어의 피보나치수열  (0) 2018.09.12