4
저는 벡터처럼 동작하는 캐시를 찾고 있습니다. 나는 core.cache을 사용하고 있었지만 그것들은 맵입니다. 난 단순한 FIFO 제거 방법이 필요해. 내가 간단하게 CacheProtocol
프로토콜을 사용하여 내 자신을 만들 수 있다는 것을 알았지 만, 이와 같은 것이 이미 존재하는지 또는 이것이 나쁜 생각인지에 대한 이유가 있는지 알고 싶었습니다.클로저 벡터 캐시
저는 벡터처럼 동작하는 캐시를 찾고 있습니다. 나는 core.cache을 사용하고 있었지만 그것들은 맵입니다. 난 단순한 FIFO 제거 방법이 필요해. 내가 간단하게 CacheProtocol
프로토콜을 사용하여 내 자신을 만들 수 있다는 것을 알았지 만, 이와 같은 것이 이미 존재하는지 또는 이것이 나쁜 생각인지에 대한 이유가 있는지 알고 싶었습니다.클로저 벡터 캐시
캐시에 대한 인터페이스와 같은 벡터 만 있으면 값에 대한 인덱스의 캐시가 필요에 맞을 수 있습니다. 이 벡터 값으로 숫자의지도에 개념적으로 매우 유사하기 때문에 캐시의 열쇠로 번호를 사용하는 것은 많은 사용 사례을 채울 것으로 보인다하지만 난 당신의 특정 문제에 대해 조금 같은데요 :
user> (def C (cache/fifo-cache-factory {0 1 1 0}))
user> (get C 0)
1
이 충분하지 않은 경우 당신은과 같이 벡터의 형태로 캐시의 현재 내용을 볼 수 있었다 : 그것은 인덱스로 번호를 사용하는 많은 사람들이
을위한 일을 할 것입니다 가능성이 높습니다 대부분의 경우user> (vec (map #(get C % nil) (range 11)))
[1 0 nil nil nil nil nil nil nil nil nil]
주 볼 수있는 세인트 나는 질문을 이해하고있다; 벡터의 내용을 캐시 할 때 각 색인의 요소가 사용 가능 해지면 새로운 값으로 대체되기를 원하십니까? –
그게 내가 찾고 있던거야. 그러나 나는 모든 요소를 이동시키는 오버 헤드가 도입 될 것이라고 생각하지 않았습니다. 이것은 나의 질문의 마지막 부분에 대한 대답입니다 : "이것은 나쁜 생각입니까?" => "예" –