Try this (you need to wrap the return val of helper in lazy-seq also):
(defn pair-sequences-by
([seq-1 seq-2 f1 f2]
s1 and s2 are guaranteed to be strictly monotonically increasing
whith respect to f1 and f2 as keys respectively.
The return value is pairs of elements e1 from s1 and e2
Thanks Mark,
I think that worked!!
Sunil.
On Sat, Feb 25, 2012 at 10:54 AM, Mark Rathwell mark.rathw...@gmail.comwrote:
Try this (you need to wrap the return val of helper in lazy-seq also):
(defn pair-sequences-by
([seq-1 seq-2 f1 f2]
s1 and s2 are guaranteed to be strictly
On 2010 Mar 23, at 9:28 PM, Per Vognsen wrote:
So you can see that scan-filter-zip is lazy in the source sequence but
apparently not the primary input sequence. That was surprising to me
because I see nothing in my code that should have forced that. Then I
remember that some functions like range
Hello,
I played a bit with Fibonacci again. The slow and inefficient way ;-)
(defn fib0 [n] (if ( n 1) 1 (+ (fib0 (- n 1)) (fib0 (- n 2)
user= (time (fib0 35))
Elapsed time: 20874.18345 msecs
24157817
I use (set! *print-length* 10) and tried some mapping:
user= (time (map fib0 (iterate
Hi,
On Mar 19, 11:27 am, alux alu...@googlemail.com wrote:
user= (time (fib0 35))
Elapsed time: 20874.18345 msecs
24157817
user= (time (map fib0 (iterate inc 1)))
Elapsed time: 0.913524 msecs
(2 3 5 8 13 21 34 55 89 144 ...)
Everything fine.
Now what puzzles me:
user= (time (map fib0
Hi,
On Mar 19, 12:34 pm, alux alu...@googlemail.com wrote:
You didnt try this, as I can judge, because you responded in finite
time ;-)
Ah, yes. Intersperse with (take 10 ...) at will. :)
My main irritation is still: Why do my range and my iterate version
differer in their print beheavior?
;-)
Still, I dont believe.
I get the same difference with
user= (time (map fib0 (range 100)))
Elapsed time: 1.916445 msecs
more than 5 seconds
(0 1 1 2 3 5 8 13 21 34 ...)
user= (time (map fib0 (iterate inc 0)))
Elapsed time: 0.104203 msecs
(0 1 1 2 3 5 8 13 21 34 ...)
Hm.
Regards, alux
2010/3/19 alux alu...@googlemail.com:
;-)
Still, I dont believe.
I get the same difference with
user= (time (map fib0 (range 100)))
Elapsed time: 1.916445 msecs
more than 5 seconds
(0 1 1 2 3 5 8 13 21 34 ...)
user= (time (map fib0 (iterate inc 0)))
Elapsed time: 0.104203 msecs
(0
Hi,
On Mar 19, 1:39 pm, alux alu...@googlemail.com wrote:
Still, I dont believe.
You should...
I get the same difference with
user= (time (map fib0 (range 100)))
Elapsed time: 1.916445 msecs
more than 5 seconds
(0 1 1 2 3 5 8 13 21 34 ...)
user= (time (map fib0 (iterate inc 0)))
Meikel,
you are right, I changed horses, uh, definitions inbetween. So the
REPL interaction of my last response should read
Clojure 1.1.0
user= (set! *print-length* 10)
10
user= (defn fib0 [n] (if ( n 1) 1 (+ (fib0 (- n 1)) (fib0 (- n
2)
#'user/fib0
user= (time (map fib0 (range 100)))
Laurent,
Could chunked seqs explain something here ?
sounds possible. If I only knew what this is ;-)
Regards, alux
Laurent PETIT schrieb:
2010/3/19 alux alu...@googlemail.com:
;-)
Still, I dont believe.
I get the same difference with
user= (time (map fib0 (range 100)))
This is not a suggestion or anything, just entertaining myself with
some uneducated thinking.
What if all lazy functions (map filter etc) would check some global
value and decide upon it lazyness ? Then we could do something like
this:
(eager
(map ...(filter ...)))
That would allow
Hi,
Am 02.10.2009 um 22:01 schrieb Vagif Verdi:
This is not a suggestion or anything, just entertaining myself with
some uneducated thinking.
What if all lazy functions (map filter etc) would check some global
value and decide upon it lazyness ? Then we could do something like
this:
(eager
On Oct 2, 1:37 pm, Meikel Brandmeyer m...@kotka.de wrote:
You can do so by with doall:
(doall (map ... (filter ...)))
Unfortunately this is not true. Yo are paying penalty for lazyness in
this case.
Try it yourself. Write non lazy versions of map and filter and time
them against
Hi,
Am 03.10.2009 um 06:09 schrieb Vagif Verdi:
You can do so by with doall:
(doall (map ... (filter ...)))
Unfortunately this is not true. Yo are paying penalty for lazyness in
this case.
Try it yourself. Write non lazy versions of map and filter and time
them against standard ones
Here is a little test :
(def *indent* 0)
(defmacro with-indent [ body]
`(binding [*indent* (+ *indent* 1)]
[EMAIL PROTECTED]))
= (with-indent (print *indent*) (lazy-cons *indent* (cons *indent*
nil)))
1(0 0)
I somehow expected to have the special variable value lexically bound
at
16 matches
Mail list logo