Size: a a a

Clojure — русскоговорящее сообщество

2020 March 06

НМ

Наташа Маркс in Clojure — русскоговорящее сообщество
Andrey Ivanov
может лучше тогда в проститутки?
У тебя есть опыт? ))
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
с проститутками? нет, не пользовался
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Наташа Маркс
Как делать теорию категорий на Clojure?
есть библиотеки, и не одна
источник

НМ

Наташа Маркс in Clojure — русскоговорящее сообщество
Andrey Ivanov
с проститутками? нет, не пользовался
А чего тогда советуешь? ))
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
этож мем известный
источник

NK

Nikita Kononenko in Clojure — русскоговорящее сообщество
Andrey Ivanov
этож мем известный
там про жаваскрипт было!
источник

АР

Алексей Разиков in Clojure — русскоговорящее сообщество
Наташа Маркс
Разве нет?
а по мне да. Обе функции, результаты одной передаются в другую.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Sergey Trofimov
то есть окажется, что (partial +) даст менее производительный вариант, чем #(+ ^int %1 ^int %2)
Тайп хинты тут вообще ничего не меняют
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
на арифметику они кажется не влияют, только на вызов метода типа (.getFoo my-data)
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
В компиляторе кложаскрипта тайп хинты не влияют ни на что, ставить их бесполезно. Это Майк Файкс еще писал.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
В кложе могут влиять на type inferrence
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
В shadow-cljs Хеллер рекомендует расставлять на интеропе, иначе у него ругается сборщик.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
И это может влиять на автогенерацию externs в shadow-cljs
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
Тайп хинты тут вообще ничего не меняют
о, фига я пизданул
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
короче:

 
(defn a [a b] (+ a b))

(defn b [^long a ^long b] (+ a b))
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
вот две функи
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
первая в:

public static Object invokeStatic(Object a, Object b) {
       Object var10000 = a;
       a = null;
       Object var10001 = b;
       b = null;
       return Numbers.add(var10000, var10001);
   }

   public Object invoke(Object var1, Object var2) {
       Object var10000 = var1;
       var1 = null;
       Object var10001 = var2;
       var2 = null;
       return invokeStatic(var10000, var10001);
   }
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
вторая в:

public static Object invokeStatic(long a, long var2) {
       return Numbers.num(Numbers.add(a, var2));
   }

   public Object invoke(Object var1, Object var2) {
       return invokeStatic(RT.longCast((Number)var1), RT.longCast((Number)var2));
   }

   public final Object invokePrim(long var1, long var3) {
       return invokeStatic(var1, var3);
   }
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
если просто invoke тут скорее всего особо не сыграет, то вот при вызове invokeStatic и invokePrim все обойдется без динамических диспатчей. вопрос, конечно, а сколько на себя в первом случае JIT сможет взять
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
но генерируем код в любом случае разный, да
источник