@scala_ru

Страница 819 из 1499
Alexey
13.07.2017
09:40:59
в операциях над коллекциями почти всё сделано через мутабельные типы

KrivdaTheTriewe
13.07.2017
09:42:08
собственно я тему и поднял о локальной мутабельности

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

Alexey
13.07.2017
09:43:25
Раз уж о коллекциях заговорили. Почему Views " are one of the lesser-used features " ? классная же штука, нет?

Google
Oleksandr
13.07.2017
09:50:28
классная, если тебе, например, из 100000 элементов надо обработать до 100, по какому-то заранее неизвестному кондишну, и не хочешь фильтровать все что довольно редкий случай, как по мне

Bulat
13.07.2017
09:51:55
основная проблема с вьюхами, что можно незаметно использовать какую-нибудь функцию, которая материализует вьюху. И компилятор не ругнется

Alexey
13.07.2017
09:52:00
ну сокращение создания промежуточных коллекций хотя наверно случаи когда .map(...).map(...)... реально нужны редки

разве не только на .force они материализуются?

Bulat
13.07.2017
09:52:39
там половина методов в итоге сводится к материализации промежуточного состояния. И нужно хорошо понимать, что можно делать, а что нет

нет, не только

можно, к примеру, сделать какой-нибудь groupBy

и это тоже будет форсить

Alexey
13.07.2017
09:53:41
спасибо

KrivdaTheTriewe
13.07.2017
09:55:57
Апач спарк одна большая вьюха

Alexey
13.07.2017
09:56:44
mindblowing

Oleg
13.07.2017
10:03:03
View по сравнению с итератором хорош только тем, что он помнит, что он внутри имеет Seq

Google
Oleg
13.07.2017
10:04:16
Иногда сам является Seq в связи с этим

Но для мапов, флатмапов, фильтров и т.п. это не нужно

А вот тот дизайн, про который Петрашко в скалалазе рассказывал уже гораздо круче. Где просто по дефолту для всего используют вьюхи, которые потом макросом раскручиваются в циклы

Читай (скопипастено с rust)

KrivdaTheTriewe
13.07.2017
10:08:30
э т где использовали хитрый линкер ?

Oleg
13.07.2017
10:13:47
э т где использовали хитрый линкер ?
Думаю, что линкер здесь пока не при чём, если не считать дополнительного ускорения за счёт специализации

Nikita
13.07.2017
10:38:40
сижу такой на скале 2.11.8 никого не трогаю, пишу себе паттерн матчи, и потом замечаю что компилятор не всегда выдает предупреждение что не все случаи обработаны, попробовал то же самое на 2.12.2, там все ок https://scastie.scala-lang.org/OJMmjSjXRtO82AGXYpoS0g

Nikita
13.07.2017
10:50:20
печалька, я не ожидал такой подставы от скала компилятора, но радует что хотяб починили в 2.12

Alex
13.07.2017
10:50:50
2.11.9 же вроде не рекомендуется, надо сразу 2.11.11

Nikita
13.07.2017
10:51:31
в 2.11.11 это тоже не работает

там в примере можно выбрать версию скалы)

Oleg
13.07.2017
10:52:54
иди кодь на своём окамле, если такой безопасный

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

Nikita
13.07.2017
10:54:25
о я тебя вспомнил, ты тут самый токсичный

Oleg
13.07.2017
10:55:03
нет

Nikita
13.07.2017
10:55:12
это я так тоже пошутил

KrivdaTheTriewe
13.07.2017
10:55:17
иди кодь на своём окамле, если такой безопасный
ты не в интернете базарь, а выйди со мной раз на раз (c)

Google
Nikita
13.07.2017
10:56:01
я не в курсе что там за история с выводом типов, нытьем и окамлом, но здесь мне кажется попроще случай - есть туплы которые кейс классы, для них норм работает патмат, создаешь свой класс и все давай удачи

Oleg
13.07.2017
10:57:30
патмат не столь прост, как кажется. В особенности, если учитывать как в скале сделан unapply

Daniel
13.07.2017
10:58:47
слава богу еще не требуете, чтоб работало по спеке языка с | и прочим

Nikita
13.07.2017
11:02:29
Daniel
13.07.2017
11:03:08
нет это к тому, что по спеке языка нужно поддерживать гораздо более сложные конструкции, но нет-с

и даже ишью заводить на это не стали

Oleg
13.07.2017
11:04:26
и даже ишью заводить на это не стали
не понял. В 2.12 что-то не поддерживается?

Daniel
13.07.2017
11:04:53
в 2.12 кстати не проверял, попозже гляну

Oleg
13.07.2017
11:05:08
Так, а что не работает с | ?

Daniel
13.07.2017
11:10:49
Pattern1 { ‘|’ Pattern1 }

Oleg
13.07.2017
11:11:07
Pattern1 { ‘|’ Pattern1 }
ну а нерабочий пример?

Daniel
13.07.2017
11:12:24
sealed trait T case class A(a: Int) extends T case class B(b: String) extends T val a = A(1) val b = B("stroka") def f(t: Any) = t match { case A(x) | B("stroka") => "yohoo" case _ => "any" }

если конкртеное значение будет вместо x, то ок с переменной уже не понимает

Oleg
13.07.2017
11:14:21
если конкртеное значение будет вместо x, то ок с переменной уже не понимает
а в какой спеке написано, что в паттерн-альтернативах могут быть переменные?

case A(_)

Daniel
13.07.2017
11:15:40


Oleksandr
13.07.2017
11:16:00
sealed trait T case class A(a: Int) extends T case class B(b: String) extends T val a = A(1) val b = B("stroka") def f(t: Any) = t match { case A(x) | B("stroka") => "yohoo" case _ => "any" }
scala> def f(t: Any) = t match { case A(1) | B("stroka") => "yohoo" case _ => "any" } def f(t: Any): String scala> f(2) val res2: String = "any" scala> f(a) val res3: String = "yohoo" scala> f(B("stroka")) val res4: String = "yohoo" scala> f(A(1)) val res5: String = "yohoo" scala> f(A(2)) val res6: String = "any"

Daniel
13.07.2017
11:16:02
по описанию языка вполне можно подставить вместо паттернс

Oleksandr
13.07.2017
11:16:04
вроде все работает

Google
Daniel
13.07.2017
11:16:28
вроде все работает
я написал выше что так работает, с переменной в экстракте нет

Daniel
13.07.2017
11:16:54
да

Oleksandr
13.07.2017
11:17:34
да
scala> def f(t: Any) = t match { case A(x) | B("stroka") => "yohoo" case _ => "any" } def f(t: Any): String scala> f(A(1)) val res7: String = "yohoo" scala> f(B("stroka")) val res8: String = "yohoo" scala> f(B("strok")) val res9: String = "any" scala> f(A(2)) val res10: String = "yohoo"

Daniel
13.07.2017
11:18:19
забавно, в скасти не пашет

Oleksandr
13.07.2017
11:18:40
дотти наконец-то завезли в brew, через него смотрю

Daniel
13.07.2017
11:18:48
а-а

Oleksandr
13.07.2017
11:19:35
кстати, очень круто сделано редактирование мультистроки, типа def (f) ...

сразу все выражение можно менять, а не построчно, как в scala2

Юрий
13.07.2017
11:37:40
https://www.jetbrains.com/research/devecosystem-2017/scala/ 37% скала разрабов пользуется спрингом. Кто все эти люди?

Admin
ERROR: S client not available

Nikita
13.07.2017
11:39:04
а такой вопрос, есть в скала компиляторе -Ywarn-numeric-widen, потом такой еще добавляешь -Xfatal-warnings, и идешь писать тест list1 must have size list2.size, и оно не скомпилится, так как size(expectedSize: Long), выбрасывать scalatest теперь?

Denis
13.07.2017
11:40:34
Какой то спаркжава еще используют для хттп, первый раз услышал о нем

KrivdaTheTriewe
13.07.2017
11:40:51
И деплоит war в томкат
меня так архитектор попросил переписать финч , на что-нибудь, что war файлы умеет

Nikita
13.07.2017
11:41:19
Юзай assert
ну есть и проще вариант, я просто хотел матчеры из поставки юзать

Nikita
13.07.2017
11:41:43
у какой такой коллекции в скале size/length возвращает Long?

Google
KrivdaTheTriewe
13.07.2017
11:41:45
видимо это был архитектор домов
ну только так деплоили , и вебсервисы не был наш профиль

Nikita
13.07.2017
11:43:07
как можно говорить о скала бигдате если у тебя коллекции Int размер отдают

Nikita
13.07.2017
11:43:32
перехожу на монгу...

KrivdaTheTriewe
13.07.2017
11:45:03
он по другому назывался, просто спарк :) но видимо им пришлось ребрендинг сделать

Vladislav
13.07.2017
11:47:50
http://sparkjava.com/
хорошая штука имхо

Я не раз рекомендовал разным людям, не спринг же им предлагать посмотреть

KrivdaTheTriewe
13.07.2017
11:49:10
Vladislav
13.07.2017
11:49:32
частично да

KrivdaTheTriewe
13.07.2017
11:49:37
Я не раз рекомендовал разным людям, не спринг же им предлагать посмотреть
ну видно. что фреймворк развивается, они даже котлин добавили туда ( альфа)

Vladislav
13.07.2017
11:50:13
схема упростилась, но если ты про акторы и скалу - то да, кол-во кода увеличивается

Vladislav
13.07.2017
11:51:00
все новые проекты/сервисы принято писать на scala/akka-http

но речь про яндекс вертикали)

KrivdaTheTriewe
13.07.2017
11:51:44
но речь про яндекс вертикали)
разбирается про внутренние структуры человек который забанен)

Vladislav
13.07.2017
11:52:09
это кто?

Daniel
13.07.2017
11:52:34
Vladislav
13.07.2017
11:52:58
я могу только за вертикали говорить, это авто/автору, недвижка, работа и путешествия

большая часть сервисов, имхо, на скале

KrivdaTheTriewe
13.07.2017
11:53:38
Вообще очень хотелось бы простых докладов про построение подобных вещей на скала стеке, книжек мало, и всё как-то варится внутри конторы) ремесло

Vladislav
13.07.2017
11:54:57
я наоборот думал всё доделать полнотекст для йоктодб и доклад по этому запилить, тк думал/думаю что изи доклады это так себе идея...

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