차 해봐았다. 뇌가 활성화 덜 되서 그런지, 표현이 마음에 안들었는데,


간단 벤치마크 해보니 마음에 드는 표현이 존나게 약 7만배 느려.

이런건 그냥 머리속에 틀에 밖힌, 서로 속도차가 없는 몇가지 방법이 있는데, 대체 왜 느릴까?


원래 목적은 재쳐두고, 왜 느린지 파보기 시작.


아주 예전(?)과 지금과 다른 점을 먼저 생각해 봄

- 오라클 JDK에서 오픈JDK로 바꿈

- 버전 8...


버전 8 이라... 회사껀 11로 업그레이드 했는데... 일단 JDK업그레이드 후 벤치마크 다시 한번.

변화가 없음 ㅋ


와 ㅅㅂ 이거 뭐지? 암튼 모닝 뇌 워밍업 준비운동이 좀 옆길로 샛네 샛어 ㅋ


(defn diamond [n]

  {:pre [(<= 1 n) (odd? n)] }

  (let [n-half (quot n 2)]

    (for [n-outer-spc (concat (range n-half -1 -1) (range 1 (inc n-half)))

          :let [outer-spc (repeat n-outer-spc \\space)

                n-inner-spc (- n n-outer-spc 2 n-outer-spc)]]

      (apply str `(~@outer-spc

                   \\*

                   ~@(repeat n-inner-spc \\space)

                   ~@(when (pos? n-inner-spc)

                       [\\*]))))))


(defn print-diamond! [n]

  (doseq [line (diamond n)]

    (println line)))