오늘은 오후에 옮기려는 회사 사람들 만나서 앞으로 1년간 계획에 대해 들었다.
뭐 큰 덩어리만 설명 듣다가 URL 줄이는게 갑툭튀 함. 그거 해야 된다고. 내가 볼땐 별거 아닌건데 갑툭튀해서 약간 당황함.
돌아오는 길에 위키 검색 해서 개념 파악후 간단히 짜보니까 별거 아니드만 ㅇㅇ
(ns url-shortener.core)
(import 'clojure.lang.Murmur3)
(defonce n->ch-map
(mapv char (concat (range (int \0) (inc (int \9)))
(range (int \A) (inc (int \Z)))
(range (int \a) (inc (int \z))))) )
(defn long->mod62s [^Long x]
(assert (not (zero? x)))
(loop [n x
digits ()]
(if (zero? n)
digits
(recur (quot n 62)
(conj digits (mod n 62))))))
(defn shorten-str [^String s]
(transduce (map n->ch-map)
str
(long->mod62s (Murmur3/hashUnencodedChars s))))
와 역슬래쉬 다 잡아먹네 ㅇㅇ
사실 저기서 제일 핵심은 hashUnencodedChars 부분인데, 클로져 코어에 이미 구현이 있어서 ㅋㅋㅋ 날로 먹음 ㅇㅇ
자꾸 날로 먹으면 머머리 되여@.@ - DCW
씨알메리//되여->돼여 (되어 = 돼임) [리듬 맞춤법 봇♬]
스테이블// 니가 하스켈로 짜보고 비교 ㅇㅇ. ㅆㅇㅁㄹ//벗겨지면 할 수 없다만 이제껏 안벗겨짐 ㅇㅇ