@scala_ru

Страница 1186 из 1499
Kirill
10.01.2018
07:04:48
да скала не виновата ) это я вспоминаю кулстори из жвм чата что скалисты только и делают что сигнатуры обсуждают )

Henadz
10.01.2018
07:05:43
"в скала-чате только и разговоров, что о сигнатурах"

Henadz
10.01.2018
07:05:58
достучаться до компилятора

Google
Nick
10.01.2018
07:06:04
Продумать систему типов

sherzod
10.01.2018
07:06:13
это лучше чем рантайм обсуждать)) значит решаем проблемы до него)

Kirill
10.01.2018
07:07:17
Ну вот, свои типы только обсуждают, а бузинесс валуе то где, а? я вас спрашиваю, миллионы далларов-то где?

Grigory
10.01.2018
07:07:39
да в голанге, там ведь нет таплов

или есть

Nick
10.01.2018
07:08:06
Там есть таплы вроде

Kirill
10.01.2018
07:08:06
спроси у Ника, он спец

Grigory
10.01.2018
07:08:07
err, res :=

Nick
10.01.2018
07:08:29
Или они не совсем таплы и они хотят добавить

Aleksey
10.01.2018
07:59:34
котоны, а есть для акка стримов что-то подобное mvar из моникса? точнее даже, есть ли mvar для фьюч в составе акка стримов?

Vladimir
10.01.2018
08:02:47
кмк нет, может, он был, или есть, но не в стримах, а в каком-то akka-forgotten-legacy

Google
Vladimir
10.01.2018
08:03:14
но всегда можно написать его на акторах)

Dmitry
10.01.2018
08:03:21
В stm был

Давно уже нет

Aleksey
10.01.2018
08:06:52
чем-то более модным заменили?

Dmitry
10.01.2018
08:07:22
Не, выделили в отдельный проект

И вроде оно умерло

ScalaSTM — Library-Based Software Transactional Memory for Scala https://nbronson.github.io/scala-stm/

Aleksey
10.01.2018
08:11:01
Написал уже все за праздники?)
конечно. осталось, как говорится, пофиксить баги и задеплоить

Nick
10.01.2018
08:11:19
Хех. У меня так уже полгода )

KrivdaTheTriewe
10.01.2018
09:56:08
Хех. У меня так уже полгода )
Осталось сервисы под docs написать ?

Alex
10.01.2018
10:08:08
под dos

Alexey
10.01.2018
10:08:59
гитхаб лежит?

Grigory
10.01.2018
10:09:33
Alex
10.01.2018
10:09:45
https://twitter.com/githubstatus/status/951033058202980352

Alexander
10.01.2018
10:22:08
У меня есть M[Seq[T]] и f: T => M[Option[U]] - нужно найти первый T, для которого найдётся U и вернуть этот Option[U]. Эдакий collectFirst высшего порядка. Что есть в котах для этого (тайпкласс)?

Mikhail
10.01.2018
10:26:37
У меня есть M[Seq[T]] и f: T => M[Option[U]] - нужно найти первый T, для которого найдётся U и вернуть этот Option[U]. Эдакий collectFirst высшего порядка. Что есть в котах для этого (тайпкласс)?
зачем в ф заворачивать в M, если она применяется к каждому элементу а не к общему? почему не f: T => U и обычный collectFirst с обычной трансорфмацией содержимого M[K] => M[Kek] ?

Alexander
10.01.2018
10:27:45
f в базу ходит (M - это DBIO)

Alexander
10.01.2018
10:38:15
так он не higher order

Google
Alexander
10.01.2018
10:38:33
@typeclass trait Foldable[F[_]] { self => /** * Left associative fold on 'F' using the function 'f'. */ def foldLeft[A, B](fa: F[A], b: B)(f: (B, A) => B): B

Oleg
10.01.2018
10:41:44
тут не нужно никаких хайерордер, тут нужно аккуратно свернуть через foldRight, либо foldM правильно сделав ленивый моноид

Alexander
10.01.2018
10:42:43
foldM выглядит как то что нужно, благодарю

только он не ленивый... А что ты имеешь в виду под ленивым моноидом?

Oleg
10.01.2018
10:49:50
ну короче мне кажется, что здесь одно из двух либо делать foldRight и надеяться на стейсейфовость монады либо делать tailRecM и специализировать для Seq

Alexander
10.01.2018
10:51:31
возможно стоит оставить рекурсивным методом и не заморачиваться...

def foldRight[A, B](fa: F[A], lb: Eval[B])(f: (A, Eval[B]) => Eval[B]): Eval[B] как-то сомнительно выглядит, я не могу покинуть M

tailRecM можно попробовать (а может и нет)

Mikhail
10.01.2018
11:20:40
@tvaroh на скорую руку за пару минут, я бы сделал так: def kukuruku[K, T](io:IO[Seq[K]])(f: K => IO[Option[T]]):IO[Option[T]] = { def collectFirst(seq:Seq[K]):IO[Option[T]] = { seq.headOption match { case Some(head) => f(head).map { case None => ??? //prosto fail case x => x } orElse collectFirst(seq.tail) case None => IO(None) } } for { seq <- io x <- collectFirst(seq) } yield x } но такого в катсах нету

Alexander
10.01.2018
11:21:10
примерно так я и сделал

благодарю за помощь, если в котах нету - моя совесть чиста

Mikhail
10.01.2018
11:21:59
@tvaroh на катсах? покажи как, я просто катсы не пользую, но интересно)

Alexander
10.01.2018
11:23:06
я не женерифицировал до collectFirst, просто рекурсия, но смысл тот же: def findFirstMatchingMetrics(jobs: Seq[AnalysisJob]): DB[Option[Seq[AnalysisMetrics]]] = jobs.headOption.fold((None: Option[Seq[AnalysisMetrics]]).pure[DB]) { job => val result = findMatchingMetrics(job) result.flatMap(_.fold(findFirstMatchingMetrics(jobs.tail))(_ => result)) }

Anton
10.01.2018
11:25:53
Мимопроходил: - None: Option[Seq[AnalysisMetrics]] + Option.empty[Seq[AnalysisMetrics]] Почему: type ascription может приводить к триггеру implicit преобразований, явные конструкторы -- нет.

Oleg
10.01.2018
11:29:10
tailRecM можно попробовать (а может и нет)
https://gist.github.com/Odomontois/a3f5c8608f40ed4d7fb086ecc89165e4

Можно заменить числа на 10009 (простое), чтобы убедиться, что второй вариант -стексейфовый, а первый - нет

Alexander
10.01.2018
11:44:45
https://gist.github.com/Odomontois/a3f5c8608f40ed4d7fb086ecc89165e4
? чуть-чуть упростил второй вариант до https://gist.github.com/Tvaroh/f3c69cdf7a7a52b1ea2b6019e20c2646 - буду взлетать на нём

Юрий
10.01.2018
11:58:08
Check out @webstandards_ru’s Tweet: https://twitter.com/webstandards_ru/status/951015822306238466?s=09

Aleksei
10.01.2018
11:58:27
очень тонкий намек? =)

Google
Admin
ERROR: S client not available

Юрий
10.01.2018
11:58:40
Самый тонкий

Alex
10.01.2018
12:20:54
но ведь все эти сложные пруфы равенства нужны только для сложных типов, почти везде, где мы говорим про человечкский код - это разве не будет просто экстенсиональное и refl в одно действие?
ну сложные понятие растяжимое, вот например те же манатки частичности для эмуляции тюринг-полного по моему сразу требуют HIT в виде фактор-индуктивно-индуктивного https://arxiv.org/pdf/1610.09254.pdf

ну а в целом да, будут видимо поначалу эвристики, типа тут резать там нет

Oleg
10.01.2018
12:30:46
setoid hell

Gleb
10.01.2018
13:29:59
ага
не только github, у bitbucket тоже проблемы https://status.bitbucket.org/

Natalia
10.01.2018
13:42:41
Всем привет!

Alex
10.01.2018
14:02:01
setoid hell
его кстати уже в OTT решили

там всё изначально в сетоидах :)

в хотте обобщили до n-группоидов

Aleksey
10.01.2018
14:06:46
Всем привет!
http://www.nohello.com

Denis
10.01.2018
14:14:27
Aleksey
10.01.2018
14:15:31
WTF
Хорошая практика в чатиках не говорить «привет», а говорить «привет. [вопрос]».

Denis
10.01.2018
14:15:44
А если нет вопросов?

Arthur
10.01.2018
14:16:09
то зачем писать что-то

Aleksey
10.01.2018
14:16:10
А если нет вопросов?
тогда зачем писать?

Daniel
10.01.2018
14:16:17
коралловый_аспид.жпг

Denis
10.01.2018
14:16:25
/toxic

Нет вопросов - молчи. Тут вам не гошечка

Henadz
10.01.2018
14:17:13
жоска, ежжи

Google
Arthur
10.01.2018
14:17:21
вот чат для флуда если че https://t.me/kotlin_lang

Nikita
10.01.2018
14:18:25
/toxicity_overflow

Vasily
10.01.2018
14:20:08
Да ладно, логотип прикольный

Aleksey
10.01.2018
14:22:42
Олег
10.01.2018
14:28:07
http://www.nohello.com
http://neprivet.ru/

Wystan
10.01.2018
14:30:35
Сначала такие ссылки кидают, а потом удивляются по всему миру, чо русские такие хмурые ходят

Arthur
10.01.2018
14:39:03
я слышал что люди впринципе хмурые когда их время тратят впустую

Grigory
10.01.2018
14:42:36
вот поздаровались бы, а нет, стали выпендриваться же

Страница 1186 из 1499