Fork me on GitHub
#clojure-russia
<
2017-03-14
>
kishanov00:03:25

этот гугл клауд, как старый мазератти. https://youtu.be/lx0S3cIW-q8?t=4m48s (с 4:48 по 5:01 всия суть)

0xk175un310:03:20

Ребят подскажите еще какие-нибудь курсы помимо http://clojurecourse.by 🙂

rustam.gilaztdinov10:03:43

Больше нет, кажись Причем даже англоязычных я не встречал И этот курс супер крутой — прошел его и сделал все домашки -- щитай сеньор trollface

rustam.gilaztdinov10:03:40

Не, правда, курс хороший, спасибо ребятам, очень постарались 💯

kgofhedgehogs10:03:41

Привет всем. У меня вопрос возник. Вот есть у меня чистая функция, т.е. без сайд эффектов, т.е. при одинаковых аргументах всегда одинаковый результат. В кложур результаты функции будут кешироваться? Или надо как-то указать, что мне бы желательно кешировать результаты у этой функции. Если она рекурсивная, например

rustam.gilaztdinov10:03:49

И с рекурсивной ф-ей есть пример там же

kgofhedgehogs10:03:48

О. Это то, что надо!

kgofhedgehogs10:03:04

И фиббоначи, от которого у меня и возник этот вопрос тут в примерах

kgofhedgehogs10:03:06

Спасибо

kgofhedgehogs10:03:38

А что такое referentially transparent function

rustam.gilaztdinov10:03:42

Как ты и говоришь, чистая ф-я? Тут просто на этом акцент, кмк

kgofhedgehogs10:03:01

Угу. Понятно

kgofhedgehogs10:03:57

Так.. А если у меня вот такой код

(def fib-seq 
  ((fn rfib [a b] 
     (lazy-seq (cons a (rfib b (+ a b)))))
   0 1))
Т.е. это не функция, а ленивая последовательность. Когда я буду обращаться к одному и тому же отрезку этой последовательности, он не будет вычисляться заново?

0xk175un310:03:36

@andre благодарю 🙂

misha11:03:09

@kgofhedgehogs принт вставь kappa

kgofhedgehogs11:03:13

Да, точно

artemyarulin11:03:19

Тут @misha просвятил в канале #cljsrn использование (aget js-obj “prop1” “prop2”) непрально и надо юзать goog.obj.get, Нолен тут отвечает про это https://github.com/cljs/api/issues/128#issuecomment-122271806 Кто-нить еще так делает? И на скок это критично? Вроде работало все время

misha11:03:10

его аргумент: "заоптимизирую компайлер, и aget/aset для объектов может отвалиться - сами будете виноваты"

artemyarulin11:03:36

David Nolen has promised that in future versions of cljs, aset and aget will stop working withadvanced compilation. Am i right to assume that using the goog stuff future proofs us?

artemyarulin11:03:06

ну да, блин, я привык уже, печалька

misha11:03:18

а второй аргумент такой же как и для очередей в кложе "есть же очереди в жаве - зачем их оборачивать?"

just.sultanov12:03:39

привет! а можете вкратце пояснить разницу между component и mount? или это примерно как выбирать boot или leiningen?

kuzmin_m12:03:18

@just.sultanov в репках для component и mount есть сравнения если кратко, то mount только упраляет состоянием и доступен глобально component дает объект системы, и этих оъектов может быть много, т.е. можно в репле запускать тесты с коннектом к другой базе boot лучше подходит для проектов leiningen легче вначале понять, но boot более simple

kuzmin_m12:03:39

и в одном из hangouts было обсуждение про управление состоянием

misha12:03:36

для маунта есть юрта, чтобы было несколько песочниц

just.sultanov12:03:56

спасибо

misha12:03:43

маунт вроде неявно смотрит на импорты в неймспейсах, так и трекает зависимости, а в компоненте - явно ручками объявлять

dottedmag12:03:25

Господа, а как бы мне n раз выполнить некий кусок кода и собрать результаты в sequence?

dottedmag12:03:37

dotimes почти то, но он отбрасывает результаты.

dottedmag12:03:33

Придумал (take n (repeatedly <body>)). Можно как-то короче?

artemyarulin12:03:36

ээ (map f (range n)) ?

dottedmag12:03:52

Кусок не принимает аргументов.

dottedmag12:03:04

Так что тогда это будет (map #(f) (range n))

dottedmag12:03:35

Ай, я тупой, доки читать надо 😃 (repeatedly n <body>)

artemyarulin12:03:04

ну или (for [i (range 10)] body)

y.khmelevskii13:03:05

@lain есть еще от Бушенко курс - https://www.youtube.com/watch?v=6sZ6A7jx3QA&amp;list=PLHmGp4OYEMn3yPOV03tjpl64doNfNeabV как по мне тоже отличный

misha14:03:45

юбилейчик opieop

(count @conn)
=> 42000

Kira Sotnikov17:03:41

аааа там никита!

mike_ananev18:03:44

offtopic: Рич очень любит залезать в словарь и рассказывать этимологию слов. Я сегодня тоже заглянул в словарь посмотреть значение слова closure. И с удивлением обнаружил 2ое значение этого слова: "облегчение, исцеление, катарсис". Символично!

mike_ananev19:03:51

@dottedmag фу какая гадость

mike_ananev19:03:57

эта ссылка

y.khmelevskii20:03:48

кстати, а к этому курсе http://clojurecourse.by где-то на гитхабе есть решения задачь? Хочется сверится, да и не все у меня пока получается

misha21:03:12

@mike1452 так то же самое же, только не абстрактно, а в конкретном контексте