@scala_ru

Страница 553 из 1499
Dmitry
09.03.2017
08:49:24
и протокол телеграма

Nikita
09.03.2017
08:49:30
нужно запилить CRDT counter

чтобы сходилось нормально

Vitaly
09.03.2017
08:50:26


Google
Dmitry
09.03.2017
08:50:27
угу, ведь этот счетчик так важен

фотошоп

Vitaly
09.03.2017
08:51:06
><

Dmitry
09.03.2017
08:51:07


Nikita
09.03.2017
08:52:14
)))

Grigory
09.03.2017
08:52:47


Denis
09.03.2017
08:52:54
ты вконтакте сидишь что ли?

Nikita
09.03.2017
08:53:10
а вот вопрос про скалу, аргументы функции и туплы, пытаюсь найти какую-то инфу про разъяснение почему в скале надо функции делать (func _).tupled

Grigory
09.03.2017
08:53:19
вроде это под виндой интерфейс декстоп эппа

Dmitry
09.03.2017
08:53:21
это вебморда адаптированая

Nikita
09.03.2017
08:53:33
например def foo(string: String, number: Int): String = s"$string $number" val listOfTuples = List( ("String", 1), ("String", 2) ) listOfTuples.map(foo) // не компилится

Dmitry
09.03.2017
08:53:43
я ее немножко жс скриптами подправил, чтоб не была корявой

Denis
09.03.2017
08:53:58
map(foo.tupled)

Google
Nikita
09.03.2017
08:54:03
listOfTuples.map(foo _ tupled) - кривота

Nikita
09.03.2017
08:54:24
я знаю как сделать чтобы работало, просто почему нельзя это было сделать на уровне компилятора

Denis
09.03.2017
08:54:47
ну арность функции и туплы это разные вещи

еще больше магии? )

Grigory
09.03.2017
08:55:14
потому, что это огранчиение на уровни компилятора; тип (A,B) => T и ((A,B))=> T разные типы *

Grigory
09.03.2017
08:55:32
ладно я криво написал.

Nikita
09.03.2017
08:56:11
да я это все понимаю, мой вопрос о том что я даже такого scala improvement ticketа не могу найти

Oleg
09.03.2017
08:56:18
сочетание "не есть" не есть часть русского языка

Nikita
09.03.2017
08:56:39
нету слова нету ага

Oleg
09.03.2017
08:56:45
В скале - да
а где - нет ?

Denis
09.03.2017
08:56:47
праивльно говорить "не кушать"

Юрий
09.03.2017
08:56:58
Nikolay
09.03.2017
08:58:09
а где - нет ?
В sml одно и то же)

Nikita
09.03.2017
08:58:20
о

Mikhail
09.03.2017
08:58:33
сочетание "не есть" не есть часть русского языка
я использую надмножество русского языка

Nikita
09.03.2017
08:58:57
В дотти так будет сделано, если я не ошибаюсь
Спасибо, добрый человек, так я сразу нашел https://github.com/lampepfl/dotty/issues/897

Dmitry
09.03.2017
08:59:12
f: Muple2[Int,Int] => Int = $$Lambda$2764/1642844889@54c8a898

Google
Dmitry
09.03.2017
08:59:18
x_x

Mikhail
09.03.2017
09:02:04
קלאָר
не фарси тут

Nikita
09.03.2017
09:04:51
map(foo.tupled)
Идея конечно ясна, но именно такой вариант не скомпилится - Error missing argument list for method foo Unapplied methods are only converted to functions when a function type is expected. You can make this conversion explicit by writing foo _ or foo(_,_) instead of foo. listOfTuples.map(foo.tupled) ^

/zanuda-mode off

Denis
09.03.2017
09:05:22
да понятно, у нас же не whiteboard интервью )

Nikita
09.03.2017
09:06:13
ну ладно, всем спасибо за участие, отдельное Юре за направление в дотти

кстати, дотти уже можно как-то для продакшена юзать или рановато?

Nikolay
09.03.2017
09:07:30
А попробуй val foo: (String,Int) => String . и там сделать foo.tupled

Nikita
09.03.2017
09:08:11
про продакшен ответ конечно же крылся в факе дотти - You can! But it currently comes with no guarantees of stability

А попробуй val foo: (String,Int) => String . и там сделать foo.tupled
конечно я такое пробовал и оно работает, но меня интересовал именно случай с def

или ты предлагаешь теперь всегда вместо дефов делать val function: (....) => (...) ?

Nikita
09.03.2017
09:14:58
Нет, это как-то не круто
ну почему же, функции же first class citizens, чем val func хуже def func?

Denis
09.03.2017
09:15:28
аллокациями?

Daniel
09.03.2017
09:21:30
когда вы её аргументом передаете, то там уже все равно будет создание объектов функции, даже если объявляли как def

Denis
09.03.2017
09:22:12
да понятно

это к тому что ничем не хуже, просто непривычнее

Nikita
09.03.2017
09:23:16
ну тогда получается в конкретном случае разницы не будет, зато можно будет написать map(foo.tupled) вместо map(foo _ tupled)

ок, а если мы не делаем foo _ tupled, и у нас есть метод который принимает туплу, и передаем def foo в list.map, в этом случае тоже создается function object?

Google
Denis
09.03.2017
09:25:44
да

который захватывает вызов this.foo

хотя на 2.12 наверное подругому уже

Nikita
09.03.2017
09:27:01
ну я бы тоже ожидал что там как в Java 8 Bar::foo

Oleg
09.03.2017
09:28:23
Mikhail
09.03.2017
09:29:53
а в дотти или скале нет пропозала, чтобы можно было писать без запятых? case class SuperPuper ( me:Byte // , - must die you:Nyashka )

Denis
09.03.2017
09:30:45
только trailing commas

Aleksei
09.03.2017
09:30:54
Сабин в своей скале реализовал их

трэлинг коммас да

Admin
ERROR: S client not available

Aleksei
09.03.2017
09:31:06
видимо он на виме сидит

Mikhail
09.03.2017
09:31:50
Aleksei
09.03.2017
09:32:18
хотел бы я знать

Oleg
09.03.2017
09:32:38
Nikita
09.03.2017
09:32:54
не только .tupled, но и какой-нибудь val fib: Stream[Int] = 1 #:: 1 #:: fib.zip(fib.tail).map(_ +_ )
прости, но я не уловил связи, можешь подробнее?

Mikhail
09.03.2017
09:33:32
учитывая type members и infix notation, оно может быть очень противоречивым
это понятно, но разве больше чем в multiline for comprehensions ?

Oleg
09.03.2017
09:34:36
прости, но я не уловил связи, можешь подробнее?
ну я о последнем действии, underscore lambda разворачивается в Function2, сейчас они тоже неприменимы к туплам

это понятно, но разве больше чем в multiline for comprehensions ?
да, потому что for - это expression, тип в правой части там редкая вещь. А в dependent object Notation тип, выведенный из expression предполагается для повседневного применения в дефинишнах

да, потому что for - это expression, тип в правой части там редкая вещь. А в dependent object Notation тип, выведенный из expression предполагается для повседневного применения в дефинишнах
в экспрешнах для многострочных выраженией специально есть фигурные скобки, а в определении классов у них своя роль

Nikita
09.03.2017
09:38:36
ну я о последнем действии, underscore lambda разворачивается в Function2, сейчас они тоже неприменимы к туплам
у меня этот кусок не компилится, и я до сих пор не понял дополнительного профита о котором ты говоришь

Google
Oleg
09.03.2017
09:39:17
Mikhail
09.03.2017
09:43:29
в экспрешнах для многострочных выраженией специально есть фигурные скобки, а в определении классов у них своя роль
точно также можно наложить ограничения на круглые скобки в сигнатурах, чтобы дефн ограничивался одной строкой. Эта фича конечно не столь значима, чтобы придавать ей большое значение. Просто с точки зрения теории - проблем не видится

Oleg
09.03.2017
09:46:31
у меня этот кусок не компилится, и я до сих пор не понял дополнительного профита о котором ты говоришь
т.е. общее утверждение звучит так: гораздо большую важность, чем отбрасывание .tupled является использование функций, определённых комбинаторно или через lambda - синтаксис. Отдельно можно глянуть на недошейплез в akka.http.scaladsl.server для сопоставления арности туплов и функций

Nikita
09.03.2017
09:52:23
Oleg спасибо за терпеливые разъяснения, приятно общаться, но чтобы не тратить больше твоего времени, я пока поизучаю что ты написал, а потом если не пойму еще раз спрошу

Митко Соловец?
09.03.2017
10:07:33
господа, кто пилит на работе распределенные микросервисные приложения, есть такие?

Nikita
09.03.2017
10:08:26
есть

Sergey
09.03.2017
10:09:14
как боретесь с dependency hell?

Nikita
09.03.2017
10:10:28
у нас есть центральный ивентбас на кафке

Митко Соловец?
09.03.2017
10:10:29
какие паттерны взаимодействия между микросервисами используете? где можно прочитать про все?

как боритесь с синхронными "длинными" запросами

Nikita
09.03.2017
10:10:49
в нее попадают апдейты, а заинтересованные сервисы их читают

длинных синхронных запросов не делаем

какие паттерны взаимодействия между микросервисами используете? где можно прочитать про все?
можно начать с этого http://downloads.lightbend.com/website/reactive-microservices-architecture/Reactive_Microservices_Architecture.pdf

Nick
09.03.2017
10:13:21
@dmsol нафига тебе синхронные запросы?

Митко Соловец?
09.03.2017
10:13:46
так я и говорю, как их резолвить

если они всплывают

Nikita
09.03.2017
10:14:00
ну надо архитектуру проектировать так чтобы их не было

Митко Соловец?
09.03.2017
10:14:05
я читал делаю прослойку в виде 1 микросервиса, а тот через очередь общается

Nikita
09.03.2017
10:14:06
у каждого сервиса свой сторадж

Митко Соловец?
09.03.2017
10:14:13

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