니들은 머리 속에서 그런 식으로 생각하는지 묻고 싶다.


내 경우, 생각을 프로그래밍 언어로 바꿀 때 리스프 스타일 언어로 표현한게 가장 가감없이 그대로 표현한 것이 되는데, 하스켈의 경우는 바꿔야 되는 정도가 주어진 문제 이외에 또 다른 문제를 푸는 과정이 있어야 되거든. 


그래서 난 하스켈이나 스칼라를 함수형 딸딸이 언어라 부른다. 이거 쓴다는 생키들이랑 스칼라 쓴다는 생키들 코드 봤을 떄 제대로 프로그래밍 한 생키를 한번도 못봄. 걍 기본적인 추상화 개념도 없는 코드가 10중 8,9. "난 이런거도 할 줄 앎" 이정도 자위용으로 밖에는 이해가 안된다.



(defn bubble-sort [v]

  (loop [i 0 end (count v) new-v v op-count 0]

    (cond (= i end 0)       [new-v op-count]

              (= (inc i) end) (recur 0 (dec end) new-v op-count)

              :else (let [n (nth new-v i)

                              m (nth new-v (inc i))]

                          (if (<= n m)

                               (recur (inc i) end new-v op-count)

                               (recur (inc i) end (apply assoc new-v [i m (inc i) n]) (inc op-count)))))))




두줄요약: 

- 니 생각을 가장 가감없이 표현할 수 있는 언어를 택하라.

- 니들은 생각이 없다. 왜냐하면 생각이 없기 때문이다.