2012-08-14 5 views
8

Właśnie dodałem clojure.core.cache 0.6.1 do mojego projektu, zrobiłem lein deps, po bardzo krótkim i jasnym przykładzie tutaj: https://github.com/clojure/core.cache i to po prostu płaskie nie działa.clojure.core.cache po prostu nie działa na własnym przykładzie

Przykład:

$lein repl 
REPL started; server listening on localhost port 20513 
user=> (require '[clojure.core.cache :as cache]) 
nil 
user=> (def fifoc (cache/fifo-cache-factory {})) 
#'user/fifoc 
user=> (cache/has? fifoc :foo) 
false 
user=> (cache/miss fifoc :foo "bar") 
{:foo "bar"} 
user=> (cache/has? fifoc :foo) 
false 

Co jest nie tak tutaj? Czy całkowicie nie rozumiem? Próbowałem go z innymi backache pamięci podręcznej wszystkie z tym samym wynikiem. Próbowałem z różnymi kluczami, różnymi wartościami, różnymi przestrzeniami nazw, różnymi aliasami - nada. Przeprowadzanie testów daje mi to:

$ lein test clojure.core.cache.tests 

Testing clojure.core.cache.tests 

Ran 13 tests containing 273 assertions. 
0 failures, 0 errors. 

Co czyni to tym bardziej tajemniczym. Przyjrzałem się testom i podczas gdy oni: zaimportowali pamięć podręczną i stworzyli instancję java (miss (BasicCache. {}) ...), którą również wypróbowałem, to też zawodzi dla mnie w dokładnie taki sam sposób.

Jakąkolwiek pomoc, zanim wdrożę taki, który działa?

Odpowiedz

15

cache/miss zwraca nowy obiekt pamięci podręcznej, którego należy użyć do dalszych operacji.

Ex:

user=> (cache/has? (cache/miss fifoc :foo "bar") :foo) 
true 

Twój przykład postać:

user=> (def fifoc (atom (cache/fifo-cache-factory {}))) 
#'user/fifoc 
user=> (swap! fifoc #(cache/miss % :foo "bar")) 
{:foo "bar"} 
user=> (cache/has? @fifoc :foo) 
true 
+1

Dzięki za odpowiedź. Czy przykład użycia tutaj: https://github.com/clojure/core.cache wskazują, że muszę obsługiwać sam stan? Wygląda na to, że nie zdaję sobie sprawy ... Jestem w pełni świadomy, że mogę to uczynić tak samo istotnym jak twój, ale mam wrażenie z przykładów i testów, które już istniały. Spojrzę ponownie na źródło i testy. – lsh

+5

Postaram się odeprzeć to na złym przykładzie na pierwszej stronie, przekręcając moje oczekiwania. Nawet jeśli wewnętrznie zajmowali się państwem, nie jestem pewien, czy bym tego chciał. – lsh

+0

ah, kilka lat i stopień mojej zieleni, kiedy zadałem to pytanie jest trochę zawstydzające;) – lsh