Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Начиная с Java 8 «Update 40», так называемое “RTM locking” включено по умолчанию для совместимых процессоровНа сайте oracle пишут
-XX:+UseRTMLockingdocs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
Generate Restricted Transactional Memory (RTM) locking code for all inflated locks, with the normal locking mechanism as the fallback handler. This option is disabled by default
resultFromDB?.do()?.any?.thing()?.you?.want() . Посмотрите — это в точности монада Maybe. foo :: Maybe Int
bar :: Maybe Int
g :: Maybe Int
g = do
x <- foo
y <- bar
return $ x+y
val x: Int? = 32
val y: Int? = null
val g1: Int? = if(x != null && y != null) x + y else null
var g2: Int? = x?.let {y?.plus(x)} // it's the shortest one can get
take 3 (reverse (filter even [1..10]))
take 3 . reverse . filter even $ [1..10]
(1..10).take(3).reverse().filter(::even)
fun log(s: String) = if (loggingEnabled) println(s)
А как же сопоставление образцу (pattern matching)?
Kotlin ❤ FP