raulraja
09/21/2017, 10:00 AMraulraja
09/21/2017, 11:25 AMsimon.vergauwen
09/21/2017, 11:39 AMsimon.vergauwen
09/21/2017, 11:40 AMraulraja
09/21/2017, 1:15 PMraulraja
09/21/2017, 1:16 PMraulraja
09/21/2017, 1:16 PMsimon.vergauwen
09/21/2017, 1:30 PMThe issue is that we can easily fall into theoretical concepts that can confuse people
simon.vergauwen
09/21/2017, 1:32 PMraulraja
09/21/2017, 1:36 PMraulraja
09/21/2017, 1:38 PMsimon.vergauwen
09/21/2017, 1:39 PMsimon.vergauwen
09/21/2017, 1:40 PMraulraja
09/21/2017, 1:43 PMsimon.vergauwen
09/21/2017, 1:48 PMraulraja
09/21/2017, 1:50 PMraulraja
09/21/2017, 1:51 PMsimon.vergauwen
09/21/2017, 1:59 PMsimon.vergauwen
09/21/2017, 1:59 PMraulraja
09/21/2017, 2:00 PMraulraja
09/21/2017, 2:01 PMsimon.vergauwen
09/21/2017, 5:10 PMinline fun <A, reified B> Fold<A, B>.fold(M: Monoid<B> = monoid(), a: A): B = foldMap(M, a, ::identity)
or inline fun <A, reified B> Fold<A, B>.fold(a: A, M: Monoid<B> = monoid()): B = foldMap(M, a, ::identity)
simon.vergauwen
09/21/2017, 5:11 PMsomeFold.fold(list)
I am forced to use named arguments.raulraja
09/21/2017, 5:21 PMsimon.vergauwen
09/21/2017, 5:31 PMfind(FT: Foldable<F> = foldable(), noinline f: (A) -> Boolean): Option<A>
is best with the default value as first param so you can use list.find { it % 2 == 0 }
but when you’re just supplying value like the above mentioned signature it would be most convenient to have the default value as last param.raulraja
09/21/2017, 5:33 PMinline reified
also prevents from those calls being called in non reified contexts unless they can be inferred in the function argumentsraulraja
09/21/2017, 5:35 PMmonad<F>()
inside a class unless you tell it what F
is even though F
may be a type argument to the class.raulraja
09/22/2017, 11:43 AMsimon.vergauwen
09/22/2017, 3:17 PMpakoito
09/22/2017, 3:35 PM