Rayslava 26.06.2012 04:01 42152046441340682402130095

(defn my-add [a b]
(+ a b))

(def my-add2
(fn [a b]
(+ a b)))

(time (my-add 3 45))
(time (my-add2 3 45)

Output:
"Elapsed time: 0.707715 msecs"
"Elapsed time: 0.212513 msecs"
--

Ну и какого хера?

1. rman 26.06.2012 04:53

ХЗ, это не я

2. nobiiru 26.06.2012 05:00 /airbase

Прогрев мотора же.

3. Rayslavanobiiru /2 26.06.2012 05:01 42152046441340682402130095

Думаю, что это время раскрытия макроса. Но почему так долго?

4. nobiiruRayslava /3 26.06.2012 05:02 /airbase

Ну время на дрыганье винтом же.

5. Rayslavanobiiru /4 26.06.2012 05:03 42152046441340682402130095

Ок. Так и запишем.

6. Rayslava 26.06.2012 05:32 42152046441340682402130095

Кстати, гет! :)

7. nobiiruRayslava /6 26.06.2012 05:33 /airbase

Один ssh пжлста

8. Rayslavanobiiru /7 26.06.2012 06:00 42152046441340682402130095

С мятой.

9. 238328nobiiru /4 26.06.2012 07:39

макросы на винте? нет пути

10. kb 26.06.2012 07:54

Ну, а если на большом объеме данных? Или, хотя бы, местами поменять?

11. kb 26.06.2012 08:02

Это у меня одного консоль clojure — ссаное говно? Ни стрелочки, ни емакс-клавиши не работают. Есть альтернатива получше?

12. 238328kb /11 26.06.2012 08:02 5512010381340697588473640

lighttable

13. kb238328 /12 26.06.2012 08:02 c8541125

теперь я понимаю, почему его так люто спонсировали.

14. kb238328 /12 26.06.2012 08:03 c8541125

а вообще надо к емаксу поискать чего там есть

15. 238328kb /13 26.06.2012 08:03 5512010381340697588473640

потому что не понимают, что код это не главное

16. kb238328 /15 26.06.2012 11:24

натупил, там же ниже есть костыли для Enhancing Clojure REPL with rlwrap http://en.wikibooks.org/wiki/Clojure_Pro...

ща пробую

17. kb 26.06.2012 11:29

как-то так
(time (map (fn [x] (my-add 22 x)) (range 1 10000)))
"Elapsed time: 0.202623 msecs"
(time (map (fn [x] (my-add2 22 x)) (range 1 10000)))
"Elapsed time: 0.204484 msecs"

18. kbkb /17 26.06.2012 11:32

чтоб не срать в output можно еще
(time (reduce (fn [a b] a) (map (fn [x] (my-add 22 x)) (range 1 10000000))))

ох, весело у вас тут, пацаны

19. 238328kb /18 26.06.2012 17:24 31920204001340730771593262

ВКУСНЫЙ ЛИСП

20. 238328kb /18 26.06.2012 17:24 31920204001340730771593262

ЛИШП*

21. Rayslava238328 /19 26.06.2012 17:32 RAY-DESKTOP

Ты так говоришь, как будто это что-то плохое.

22. 238328Rayslava /21 26.06.2012 17:33 31920204001340730771593262

наоборот будет годно, если кложар разовьётся в своём коммунити хоть насколько-то, но в итоге какое-то говноедство выйдет, инфа 100%

23. Rayslava238328 /22 26.06.2012 17:59 RAY-DESKTOP

Ну, насчёт кложи я с тобой, в принципе, согласен. Лисп, который не умеет в рекурсию — нонсенс.

24. kbRayslava /23 26.06.2012 20:12

што? почему не умеет?

25. Rayslavakb /24 27.06.2012 03:56

Ну, они говорят, что не умеет из-за жаба-машины.
Но я подозреваю саботаж.

В смысле, если тебя пугает, что совсем не умеет — нет, это не так. Просто он не умеет автоматически разворачивать хвостовую рекурсию. Чтобы развернуть стек в итерацию, приходится применять специальный оператор recur.

26. kbRayslava /25 27.06.2012 09:17

ну я о ней же. просто на хабре была статья как раз с жалобами о том, что "внезапно перестала хвостовая рекурсия в кложуре", а потом оказалось "а, это потому что в try/except её завернули". потому я сделал вывод, что она есть. а вообще, это проверить несложно.

27. kbkb /26 27.06.2012 09:20

щас пойду попробую (просто я впервые в жизни её вообще запустил в этом топике)

28. kbkb /27 27.06.2012 09:22

user=> (def foo (fn [x] (if (> x 100000000000000000000000000000000) x (foo (+ x 1)))))
#'user/foo
user=> (foo 1)
StackOverflowError user/foo (NO_SOURCE_FILE:8)

29. kbkb /28 27.06.2012 09:22

похоже, таки нету этой вашей оптимизации

30. Rayslavakb /29 27.06.2012 09:23 33699759571340780156354756

Бля. Именно об этом я и писал. *Оптимизации* нет. Для неё запусти recur

31. kbRayslava /30 27.06.2012 09:23

ну я о ней и писал, что вроде бы была. как видишь, ошибался.

32. kbkb /31 27.06.2012 09:24

ааа, это про F# было http://habrahabr.ru/post/143690/

33. kbRayslava /30 27.06.2012 09:25

аа, ну еще мне показалось, что ты написал не "говорят, не умеет". типа не документация, а люди :) короче ок, сдаюсь.

Do you really want to delete ?