Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 22nd, 2012  |  syntax: None  |  size: 0.79 KB  |  hits: 9  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Performance of Clojure lazy structures vs hashes/sets/vectors?
  2. public Object first(){
  3.     return _first;
  4. }
  5.        
  6. public Object first(){
  7.     seq();
  8.     if(s == null)
  9.         return null;
  10.     return s.first();
  11. }
  12.        
  13. final synchronized Object sval(){
  14.     if(fn != null)
  15.         {
  16.         try
  17.             {
  18.             sv = fn.invoke();
  19.             fn = null;
  20.             }
  21.         catch(Exception e)
  22.             {
  23.             throw new RuntimeException(e);
  24.             }
  25.         }
  26.     if(sv != null)
  27.         return sv;
  28.     return s;
  29. }
  30.  
  31. final synchronized public ISeq seq(){
  32.     sval();
  33.     if(sv != null)
  34.         {
  35.         Object ls = sv;
  36.         sv = null;
  37.         while(ls instanceof LazySeq)
  38.             {
  39.             ls = ((LazySeq)ls).sval();
  40.             }
  41.         s = RT.seq(ls);
  42.         }
  43.     return s;
  44. }