Strange.
#lang racket
(define (test1 x y)
(if x
(+ y 1)
(- y 1)))
(define (test2 x)
(if x
(λ (y) (+ y 1))
(λ (y) (- y 1))))
(define (run1 data)
(map (λ (x) (test1 #t x)) data))
(define (run2 data)
(map (λ (x) ((test2 #t) x)) data)) I expect, that run2 should be faster,
because (test2 #t) returns const (lambda (y) (+ y 1)) and shouldn't be checked
on every iteration.
But in reality (time ...) gives 219 for run1 and 212 for run2. run2 is 1.5
times slower!
Why so?
--
Roman Klochkov
____________________
Racket Users list:
http://lists.racket-lang.org/users