From 6d24f60c8f73f0681b62f134f8dd7125452b2215 Mon Sep 17 00:00:00 2001 From: Patxi Bocos Date: Mon, 20 Nov 2017 10:32:34 +0100 Subject: [PATCH] Using appplicative's ap avoiding unnecessary map function --- build.gradle | 4 ++-- src/main/java/Json.kt | 2 +- src/main/java/Result.kt | 3 --- src/main/java/User.kt | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 21bed9b..b5b48cf 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { mavenCentral() } dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.51" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.60" } } @@ -15,7 +15,7 @@ repositories { } dependencies { - compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.51" + compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:1.1.60" compile 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.17' compile 'com.beust:klaxon:0.30' } diff --git a/src/main/java/Json.kt b/src/main/java/Json.kt index d13c912..41e47c8 100644 --- a/src/main/java/Json.kt +++ b/src/main/java/Json.kt @@ -27,7 +27,7 @@ inline fun JsonObject } fun JsonObject.toUser(): Result = - ::User.curried() map + pure(::User.curried()) ap getValue("username") ap getValue("password") ap getValue("premium") ap diff --git a/src/main/java/Result.kt b/src/main/java/Result.kt index 99ba674..3afb99c 100644 --- a/src/main/java/Result.kt +++ b/src/main/java/Result.kt @@ -25,9 +25,6 @@ fun Result.ifSuccess(execute: (A) -> Unit) { fun pure(a: A): Result = Success(a) -infix fun ((A) -> B).map( - result: Result): Result = result.map(this) - infix fun Result<(A) -> B, E>.ap( result: Result): Result = result.apply(this) diff --git a/src/main/java/User.kt b/src/main/java/User.kt index c0be207..eac5959 100644 --- a/src/main/java/User.kt +++ b/src/main/java/User.kt @@ -19,7 +19,7 @@ enum class UserError { fun createUser( name: String, password: String, premium: Boolean, newsletter: Boolean): Result = - ::User.curried() map + pure(::User.curried()) ap Name(name) ap Password(password) ap pure(premium) ap