Size: a a a

Scala User Group

2016 April 21

VS

Vladimir Sam in Scala User Group
да банальщина в общем-то: хочется избавиться от кучи вложенных flatMapов, чтоб была возможность сделать, скажем, так

def foo: Option[Int] = Some(5)
def bar: Future[Int] = Future.successful(5)

for {
 f <- foo
 b <- bar
} yield f + b
источник

WB

Warren Buffett in Scala User Group
ну это да, это трансформеры
источник

WB

Warren Buffett in Scala User Group
источник

VS

Vladimir Sam in Scala User Group
Покурю, спасибо
источник
2016 April 22

NK

ID:110284323 in Scala User Group
привет, есть такая валидная форма записи типа AnyRef { type Tag = String}. Как ее понять?)) Т.е. есть простые типы: String, Int; есть type constructors: List[T], Option[T]; есть higher-kinded types: Functor[X[_]] и т.д. Про них много написано, и форма записи там понятная: [ ]. Здесь же, мы прибавляем к имени типа блок {...}, который (как я понимаю) не переживет type erasure. Но главное, что я понимаю абстракцию, назначение и синтаксис type constructors и  higher-kinded types, а это не понимаю. Помогите, пожалуйтса
источник

DM

Denis Mikhaylov in Scala User Group
Привет! Это dependent type
источник

WB

Warren Buffett in Scala User Group
точнее type member. но используется чрезвычайно чаще для dependent type
источник

WB

Warren Buffett in Scala User Group
*часто
источник

DM

Denis Mikhaylov in Scala User Group
например если есть trait A { type B }  то можно писать def foo(a: A): a.B
источник

DM

Denis Mikhaylov in Scala User Group
то есть возвращаемый тип зависит от значения
источник

OO

Oleksandr Olgashko in Scala User Group
кстати, насколько я понял, в дотти именно через него (под капотом) будут выражаться те же дженерики
источник

DM

Denis Mikhaylov in Scala User Group
да
источник

A

Alexey in Scala User Group
Ну это же не депендент тайпы. Депендент тайпы это когда они внутри определены. Здесь же просто говорится что внутри типа есть ссылка на другой тип. Где он определен (внутри - депендент тайп или ссылка на любой другой тип извне) это не важно
источник

A

Alexey in Scala User Group
был недавно прикольный доклад про это
источник

A

Alexey in Scala User Group
ща скину
источник

A

Alexey in Scala User Group
источник

A

Alexey in Scala User Group
источник

A

Alexey in Scala User Group
Там есть примеры и сравнения
источник

A

Alexey in Scala User Group
Если говорить про AnyRef { type Tag = String }, то это позволяет пихнуть такой инстанц в def x(value: AnyRef { type Tag }) 
источник

A

Alexey in Scala User Group
а внутри обращаться к этому типу через value.Tag
источник