Я не знаю, какой REPL на основе браузера вы используете, но в левом столбце показан результат вызова функции, а не время, поэтому оба значения одинаковы.Обе функции вычисляют одно и то же число Фибоначчи.
Макрос time
предназначен для переноса произвольных выражений без изменения структуры кода, поэтому он возвращает то же значение, которое возвращается упакованным выражением, и печатаетВремя выполнения вычеркнуть.По сути, выражение (time (m-fib 30))
расширено до
(let [start (. System (nanoTime))
ret (m-fib 30)]
(println (str "Elapsed time: " (/ (double (- (. System (nanoTime)) start)) 1000000.0) " msecs"))
ret)
Так что, чтобы увидеть время выполнения в вашем REPL, вам нужно увидеть распечатанный вывод выражения.