Skip to content

Instantly share code, notes, and snippets.

@jmarsican
jmarsican / PolymorphicProgram.kt
Created November 23, 2019 20:52 — forked from JorgeCastilloPrz/PolymorphicProgram.kt
PolymorphicProgram.kt
package me.jorgecastillo.polymorphicapps.polymorphic
import arrow.Kind
import arrow.core.Option
import arrow.core.left
import arrow.core.right
import arrow.effects.IO
import arrow.effects.async
import arrow.effects.fix
import arrow.effects.typeclasses.Async
@jmarsican
jmarsican / RxApp.kt
Created November 23, 2019 20:48 — forked from JorgeCastilloPrz/RxApp.kt
Sample snippet for a canonical problem resolved using RxJava
interface DataSource {
fun allTasksByUser(user: User): Observable<List<Task>>
}
class LocalDataSource : DataSource {
private val localCache: Map<User, List<Task>> =
mapOf(User(UserId("user1")) to listOf(Task("LocalTask assigned to user1")))
override fun allTasksByUser(user: User): Observable<List<Task>> = Observable.create { emitter ->
val cachedUser = localCache[user]