├── .gitignore ├── .travis.yml ├── README.md ├── ch02 └── src │ └── main │ └── kotlin │ └── samples │ └── ch02 │ ├── HofAndLambda.kt │ ├── Statement.kt │ ├── TypeInferrence.kt │ └── VarAndVal.kt ├── ch03 └── src │ └── main │ └── kotlin │ └── samples │ └── ch03 │ ├── DataClass.kt │ ├── Diamond.kt │ ├── InterfaceAndClass.kt │ ├── Modifier.kt │ └── Object.kt ├── ch04 └── src │ └── main │ └── kotlin │ └── samples │ └── ch04 │ ├── ADT.kt │ ├── Biz.kt │ ├── EhancePattern.kt │ └── Pattern.kt ├── ch05 └── src │ └── main │ └── kotlin │ └── samples │ └── ch05 │ ├── Animal.kt │ ├── Cast.kt │ ├── CovarianceAndContravariance.kt │ ├── Either.kt │ ├── Generic.kt │ ├── Seat.kt │ ├── SmartCasts.kt │ ├── TypeChecker.ts.kt │ └── TypeErase.kt ├── ch06 └── src │ └── main │ └── kotlin │ └── samples │ └── ch06 │ ├── CollectionApi.kt │ ├── CollectionLib.kt │ ├── Inline.kt │ ├── LazyCollection.kt │ └── SimplifyWIthLambda.kt ├── ch07 └── src │ └── main │ └── kotlin │ └── samples │ └── ch07 │ ├── dispatchMode.kt │ ├── exchange.kt │ ├── priority.kt │ ├── scope.kt │ ├── similar2Static.kt │ ├── standardExtensionsSample.kt │ ├── sum.kt │ └── sumIsEven.kt ├── ch08 ├── build.gradle └── src │ └── main │ └── kotlin │ └── samples │ └── ch08 │ ├── Nat.kt │ └── ToMap.kt ├── ch10 └── src │ └── main │ └── kotlin │ └── samples │ └── ch10 │ ├── Applicative.kt │ ├── Either.kt │ ├── EitherT.kt │ ├── Eq.kt │ ├── Foldable.kt │ ├── Functor.kt │ ├── HigherKind.kt │ ├── List.kt │ ├── Monad.kt │ ├── Monoid.kt │ ├── Option.kt │ ├── OptionT.kt │ └── Show.kt ├── ch11 ├── build.gradle └── src │ └── main │ └── kotlin │ └── samples │ └── ch11 │ ├── Coroutine.kt │ ├── Lock.kt │ └── ShopActor.kt ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/.travis.yml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DiveIntoKotlinSamples 2 | 3 | Kotlin核心编程样例代码 4 | -------------------------------------------------------------------------------- /ch02/src/main/kotlin/samples/ch02/HofAndLambda.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch02/src/main/kotlin/samples/ch02/HofAndLambda.kt -------------------------------------------------------------------------------- /ch02/src/main/kotlin/samples/ch02/Statement.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch02/src/main/kotlin/samples/ch02/Statement.kt -------------------------------------------------------------------------------- /ch02/src/main/kotlin/samples/ch02/TypeInferrence.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch02/src/main/kotlin/samples/ch02/TypeInferrence.kt -------------------------------------------------------------------------------- /ch02/src/main/kotlin/samples/ch02/VarAndVal.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch02/src/main/kotlin/samples/ch02/VarAndVal.kt -------------------------------------------------------------------------------- /ch03/src/main/kotlin/samples/ch03/DataClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch03/src/main/kotlin/samples/ch03/DataClass.kt -------------------------------------------------------------------------------- /ch03/src/main/kotlin/samples/ch03/Diamond.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch03/src/main/kotlin/samples/ch03/Diamond.kt -------------------------------------------------------------------------------- /ch03/src/main/kotlin/samples/ch03/InterfaceAndClass.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch03/src/main/kotlin/samples/ch03/InterfaceAndClass.kt -------------------------------------------------------------------------------- /ch03/src/main/kotlin/samples/ch03/Modifier.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch03/src/main/kotlin/samples/ch03/Modifier.kt -------------------------------------------------------------------------------- /ch03/src/main/kotlin/samples/ch03/Object.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch03/src/main/kotlin/samples/ch03/Object.kt -------------------------------------------------------------------------------- /ch04/src/main/kotlin/samples/ch04/ADT.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch04/src/main/kotlin/samples/ch04/ADT.kt -------------------------------------------------------------------------------- /ch04/src/main/kotlin/samples/ch04/Biz.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch04/src/main/kotlin/samples/ch04/Biz.kt -------------------------------------------------------------------------------- /ch04/src/main/kotlin/samples/ch04/EhancePattern.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch04/src/main/kotlin/samples/ch04/EhancePattern.kt -------------------------------------------------------------------------------- /ch04/src/main/kotlin/samples/ch04/Pattern.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch04/src/main/kotlin/samples/ch04/Pattern.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/Animal.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/Animal.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/Cast.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/Cast.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/CovarianceAndContravariance.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/CovarianceAndContravariance.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/Either.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/Either.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/Generic.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/Generic.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/Seat.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/Seat.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/SmartCasts.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/SmartCasts.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/TypeChecker.ts.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/TypeChecker.ts.kt -------------------------------------------------------------------------------- /ch05/src/main/kotlin/samples/ch05/TypeErase.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch05/src/main/kotlin/samples/ch05/TypeErase.kt -------------------------------------------------------------------------------- /ch06/src/main/kotlin/samples/ch06/CollectionApi.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch06/src/main/kotlin/samples/ch06/CollectionApi.kt -------------------------------------------------------------------------------- /ch06/src/main/kotlin/samples/ch06/CollectionLib.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch06/src/main/kotlin/samples/ch06/CollectionLib.kt -------------------------------------------------------------------------------- /ch06/src/main/kotlin/samples/ch06/Inline.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch06/src/main/kotlin/samples/ch06/Inline.kt -------------------------------------------------------------------------------- /ch06/src/main/kotlin/samples/ch06/LazyCollection.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch06/src/main/kotlin/samples/ch06/LazyCollection.kt -------------------------------------------------------------------------------- /ch06/src/main/kotlin/samples/ch06/SimplifyWIthLambda.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch06/src/main/kotlin/samples/ch06/SimplifyWIthLambda.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/dispatchMode.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/dispatchMode.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/exchange.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/exchange.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/priority.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/priority.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/scope.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/scope.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/similar2Static.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/similar2Static.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/standardExtensionsSample.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/standardExtensionsSample.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/sum.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/sum.kt -------------------------------------------------------------------------------- /ch07/src/main/kotlin/samples/ch07/sumIsEven.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch07/src/main/kotlin/samples/ch07/sumIsEven.kt -------------------------------------------------------------------------------- /ch08/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch08/build.gradle -------------------------------------------------------------------------------- /ch08/src/main/kotlin/samples/ch08/Nat.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch08/src/main/kotlin/samples/ch08/Nat.kt -------------------------------------------------------------------------------- /ch08/src/main/kotlin/samples/ch08/ToMap.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch08/src/main/kotlin/samples/ch08/ToMap.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Applicative.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/Applicative.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Either.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/Either.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/EitherT.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/EitherT.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Eq.kt: -------------------------------------------------------------------------------- 1 | package samples.ch10 2 | 3 | interface Eq { 4 | fun F.eq(that: F): Boolean 5 | } 6 | -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Foldable.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/Foldable.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Functor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/Functor.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/HigherKind.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/HigherKind.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/List.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/List.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Monad.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/Monad.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Monoid.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/Monoid.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Option.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/Option.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/OptionT.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch10/src/main/kotlin/samples/ch10/OptionT.kt -------------------------------------------------------------------------------- /ch10/src/main/kotlin/samples/ch10/Show.kt: -------------------------------------------------------------------------------- 1 | package samples.ch10 2 | 3 | interface Show { 4 | fun Kind.show(): String 5 | } 6 | -------------------------------------------------------------------------------- /ch11/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch11/build.gradle -------------------------------------------------------------------------------- /ch11/src/main/kotlin/samples/ch11/Coroutine.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch11/src/main/kotlin/samples/ch11/Coroutine.kt -------------------------------------------------------------------------------- /ch11/src/main/kotlin/samples/ch11/Lock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch11/src/main/kotlin/samples/ch11/Lock.kt -------------------------------------------------------------------------------- /ch11/src/main/kotlin/samples/ch11/ShopActor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/ch11/src/main/kotlin/samples/ch11/ShopActor.kt -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/gradlew.bat -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiveIntoKotlin/DiveIntoKotlinSamples/HEAD/settings.gradle --------------------------------------------------------------------------------