
Dmitry
29.12.2016
11:02:51
какбе, это ж твой интерес, копни поглубже, да сделай

Руслан
29.12.2016
11:03:13
надо плагин ставить скала, нахер

Dmitry
29.12.2016
11:04:00
ну нахер так нахер.

Ivan
29.12.2016
11:04:08
слишком мощненько для сахара

Google

Ivan
29.12.2016
11:04:10
не находите?

Мытко
29.12.2016
11:04:18
Сахорок

Ivan
29.12.2016
11:05:01
лучше 50 классов наваять на java

Мытко
29.12.2016
11:05:01
Сахар это фор по коллекциям для меня

Руслан
29.12.2016
11:05:32
Скалисты, комон
Скомпильте ваш сахар

Dmitry
29.12.2016
11:06:00
я не слился, я потратил время, описал тебе что оно делает, а ты сразу "ну давай а теперь еще это мне сделай. и это мне сделай, а то мне лень пошевелить пальцем плагин поставить"

Мытко
29.12.2016
11:06:00
Погоди, слился ты

Dmitry
29.12.2016
11:06:16
простите, барин.
findByRefEmailCodeTypeByEmailCodeTypeCodeAndObjUserEntityAndEmailCodeValueAndEmailCodeUsedDtimeIsNullAndEmailCodeExpirationDtimeAfter(...)
%__%

Google

Aleksey
29.12.2016
11:07:06
Котоны. В википедии есть отличное определение синтаксического захара: "Это может быть любой элемент синтаксиса, который даёт программисту альтернативный способ записи уже имеющейся в языке синтаксической конструкции".
Ключевой элемент в этой истории - слово "синтаксический". Патерт-матчинг Scala это не сахар над свичом, потому что имеет другую семантику. То же самое с конструкторами типов. Это не сахар над джавовыми генериками, потому что часть другой системы типов.

Ivan
29.12.2016
11:07:14

Dmitry
29.12.2016
11:07:17
da

Ivan
29.12.2016
11:08:36

Sergey
29.12.2016
11:08:55
foo[F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B]): F[B] = flatMap.flatMap(fa, f) все равно как-то сложно)

Aleksey
29.12.2016
11:08:55

Ivan
29.12.2016
11:09:20
ну типо это вообще разные вещи

Dmitry
29.12.2016
11:10:05

Aleksey
29.12.2016
11:10:17
Я не специалист в Котлине, но мне интнресно. Скажите, есть ли в котлине языковые фичи, которые меняли бы семантику Java (ну кроме nullable). Отличается ли система типов в Котлине от системы типов Java?

Руслан
29.12.2016
11:11:39
yoda@ux32vd:14:11:~/Desktop$ ./scala-2.12.1/bin/scalac Scala.scala
Scala.scala:1: error: expected class or object definition
foo[F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B]): F[B] = flatMap.flatMap(fa, f)
^
one error found
как это скомпилить

Ivan
29.12.2016
11:11:57
но если ты не будешь в Scala использовать такие штуки то смысла юзать язык нет

Anton
29.12.2016
11:12:14
http://natpryce.com/articles/000818.html

Руслан
29.12.2016
11:12:28

Aleksey
29.12.2016
11:12:40

Ivan
29.12.2016
11:12:54
потому что будет та же Java только с сахаром
в Scala главное это система типов

Sergey
29.12.2016
11:13:03
>соответственно foo(f: Future[Integer], flatMap: FlatMap[Future], f: Integer => Future[User]) => Future[User]
а что тут вообще должно произойти?

Google

Руслан
29.12.2016
11:13:05

Ivan
29.12.2016
11:13:07
и ты ее должен юзать на максимум

Aleksey
29.12.2016
11:13:08

Anton
29.12.2016
11:13:31
делегаты - это не сахар?

Anvar
29.12.2016
11:13:39
началооось)

Руслан
29.12.2016
11:13:44
это из самого интересного

Ivan
29.12.2016
11:14:17
Почему?
у меня есть проект на скала полностью самописный, и вот когда я его написал я понял что юзаю язык не так как надо, возможности Scala гораздо шире чем мой Java мозг понимал в тот момент когда я начинал делать порект

Aleksey
29.12.2016
11:14:18
в Scala главное это система типов
Система типов да, помогает. Но необязательно использовать типы высшего порядка у себя в коде. Пускай это будет машиненией библиотек, которые ты используюешь. А вот паттернматчинг, частично заданный функции -- это фичи на каждый день.

Руслан
29.12.2016
11:14:20
но в голове обывателя это сахар

Anton
29.12.2016
11:14:46
а мне больше всего extention methods нравятся :)

Руслан
29.12.2016
11:14:57

Sergey
29.12.2016
11:14:58

Anton
29.12.2016
11:15:08

Руслан
29.12.2016
11:15:15
все можно выразить из джавы, любую хрен в скале

Aleksey
29.12.2016
11:15:44

Sergey
29.12.2016
11:15:46

Руслан
29.12.2016
11:15:46
или котлине

Google

Anton
29.12.2016
11:16:29
на уровне байткода можно делать штучки которые невозможно сделать на уровне языка :)

Руслан
29.12.2016
11:16:39

Sergey
29.12.2016
11:16:59

Ivan
29.12.2016
11:17:25
haskell
я слушал подкаст да

Anton
29.12.2016
11:17:36

Aleksey
29.12.2016
11:18:54
а что наверху это лесницы?
Ну как раз те самые типы высшего порядка, контекст-баунды, доказательства всякие. Dotty добавит уровень зависимых типов (в своем прочтении).

Dmitry
29.12.2016
11:20:46
scala> trait FlatMap[F[_]] { def flatMap[A,B](fa: F[A], f: A => F[B]): F[B] }
defined trait FlatMap
scala> def foo[F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B]): F[B] = flatMap.flatMap(fa, f)
foo: [F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B])F[B]
Но вообще @fomkin дело говорит

Admin
ERROR: S client not available

Dmitry
29.12.2016
11:22:24

Руслан
29.12.2016
11:23:28
yoda@ux32vd:14:22:~/Desktop/scala-2.12.1/bin$ cat Scala.scala
trait FlatMap[F[_]] { def flatMap[A,B](fa: F[A], f: A => F[B]): F[B] }
foo[F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B]): F[B] = flatMap.flatMap(fa, f)
yoda@ux32vd:14:23:~/Desktop/scala-2.12.1/bin$ ./scalac Scala.scala
Scala.scala:3: error: expected class or object definition
foo[F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B]): F[B] = flatMap.flatMap(fa, f)
^
one error found
yoda@ux32vd:14:23:~/Desktop/scala-2.12.1/bin$
у вас нельзя функцию прям в пакете написать?

Anton
29.12.2016
11:26:12
“у вас” :D

Sergey
29.12.2016
11:26:14

Руслан
29.12.2016
11:26:37
Мне не могут рабочий код скинуть, чтобы я скомпилить мог
Или чтобы проверить мне нужно еще скалу выучить

Anton
29.12.2016
11:27:28

Oleksandr
29.12.2016
11:28:18

Google

Руслан
29.12.2016
11:29:06

Oleksandr
29.12.2016
11:29:24
ты с темы не сьезжай

Митко Соловец?
29.12.2016
11:29:39
пацаны
день

Oleksandr
29.12.2016
11:29:43
вот штука, которую НЕЛЬЗЯ выразить в джаве

Руслан
29.12.2016
11:29:43
я тебе контр пример привел

Митко Соловец?
29.12.2016
11:29:50
+360 сообщений с ночи
в чем прикол?
опять скотлин пиарят?

Oleksandr
29.12.2016
11:30:07
какой нафиг контрпример, почитай определение слова

Руслан
29.12.2016
11:30:12

Митко Соловец?
29.12.2016
11:30:22
день сурка
отвечаю

Руслан
29.12.2016
11:30:38

Митко Соловец?
29.12.2016
11:31:08
ну как бы я не стебал котлин, думаю все-таки там немного больше, чем просто сахар

Nikita
29.12.2016
11:32:54
> немного

Руслан
29.12.2016
11:33:02
yoda@ux32vd:14:22:~/Desktop/scala-2.12.1/bin$ cat Scala.scala
trait FlatMap[F[_]] { def flatMap[A,B](fa: F[A], f: A => F[B]): F[B] }
foo[F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B]): F[B] = flatMap.flatMap(fa, f)
yoda@ux32vd:14:23:~/Desktop/scala-2.12.1/bin$ ./scalac Scala.scala
Scala.scala:3: error: expected class or object definition
foo[F[_], A, B](fa: F[A], flatMap: FlatMap[F], f: A => F[B]): F[B] = flatMap.flatMap(fa, f)
^
one error found
yoda@ux32vd:14:23:~/Desktop/scala-2.12.1/bin$
да епт, парни, напишите рабочий код, сложно что-ли?

Sergey
29.12.2016
11:33:07

Руслан
29.12.2016
11:33:13

Митко Соловец?
29.12.2016
11:33:54
смысл спора если, scala > kotlin > java