jimn
06/19/2018, 12:44 AMxenomachina
06/19/2018, 12:45 AMxenomachina
06/19/2018, 12:46 AMjimn
06/19/2018, 12:46 AMjimn
06/19/2018, 12:47 AMjimn
06/19/2018, 12:48 AMxenomachina
06/19/2018, 12:52 AMxenomachina
06/19/2018, 12:53 AMseq
methods, and the "SequenceNRule" classes?jimn
06/19/2018, 1:01 AMjimn
06/19/2018, 1:07 AMhttps://files.slack.com/files-pri/T09229ZC6-FB9MUABPD/image.png▾
xenomachina
06/19/2018, 1:08 AMxenomachina
06/19/2018, 1:09 AMxenomachina
06/19/2018, 2:24 AMjimn
06/19/2018, 2:49 AMxenomachina
06/19/2018, 2:51 AMjimn
06/19/2018, 2:53 AMxenomachina
06/19/2018, 2:55 AMif
expressions are the same as ternary expressions, just a bit more verbose 😁jimn
06/19/2018, 2:55 AMjimn
06/19/2018, 2:56 AMjimn
06/19/2018, 2:57 AMxenomachina
06/19/2018, 2:57 AMjimn
06/19/2018, 2:58 AMjimn
06/19/2018, 2:59 AMjimn
06/19/2018, 3:00 AMxenomachina
06/19/2018, 3:03 AMxenomachina
06/19/2018, 3:05 AMUnit?
in place of Boolean
?jimn
06/19/2018, 3:11 AMjimn
06/19/2018, 3:11 AMjimn
06/19/2018, 3:13 AMjimn
06/19/2018, 3:13 AMjimn
06/19/2018, 3:14 AMxenomachina
06/19/2018, 3:16 AMxenomachina
06/19/2018, 3:17 AMjimn
06/19/2018, 3:20 AMjimn
06/19/2018, 3:21 AMjimn
06/19/2018, 3:23 AMjimn
06/19/2018, 3:25 AMjimn
06/19/2018, 3:27 AMxenomachina
06/19/2018, 3:58 AMxenomachina
06/19/2018, 4:00 AMAny
and then checking to see if it's Unit
to treat that case separately, I suspect that you would be better off using `Any?`and null as your sentinel, or possibly using Option
.jimn
06/19/2018, 4:01 AMjimn
06/19/2018, 4:02 AMjimn
06/19/2018, 4:03 AMjimn
06/19/2018, 4:04 AMjimn
06/19/2018, 4:05 AMjimn
06/19/2018, 4:06 AMjimn
06/19/2018, 4:09 AMxenomachina
06/19/2018, 4:11 AMjimn
06/19/2018, 4:12 AMxenomachina
06/19/2018, 4:15 AMjimn
06/19/2018, 4:17 AMjimn
06/19/2018, 4:19 AMxenomachina
06/19/2018, 4:20 AMxenomachina
06/19/2018, 4:20 AMxenomachina
06/19/2018, 4:21 AMNone
sounds like your Nil. You can use flatMap to compose functions that return Options.jimn
06/19/2018, 4:23 AMjimn
06/19/2018, 4:25 AMjimn
06/19/2018, 4:29 AMtakeIf(op(token))?:throw
conditionsjimn
06/19/2018, 4:31 AMjimn
06/19/2018, 4:32 AMxenomachina
06/19/2018, 4:35 AMjimn
06/19/2018, 4:36 AM/**
* Returns a sequence defined by the starting value [seed] and the function [nextFunction],
* which is invoked to calculate the next value based on the previous one on each iteration.
*
* The sequence produces values until it encounters first `null` value.
* If [seed] is `null`, an empty sequence is produced.
*
* The sequence can be iterated multiple times, each time starting with [seed].
*
* @see kotlin.coroutines.experimental.buildSequence
*
* @sample samples.collections.Sequences.Building.generateSequenceWithSeed
*/
@kotlin.internal.LowPriorityInOverloadResolution
public fun <T : Any> generateSequence(seed: T?, nextFunction: (T) -> T?): Sequence<T> =
if (seed == null)
EmptySequence
else
GeneratorSequence({ seed }, nextFunction)
xenomachina
06/19/2018, 4:42 AMjimn
06/19/2018, 4:47 AMjimn
06/19/2018, 4:48 AMjimn
06/19/2018, 4:50 AMxenomachina
06/19/2018, 4:51 AMjimn
06/20/2018, 3:54 AMWhat would TakeIfNotUnit do? Unit has only one value.return <T>/Unit on false/true condition
xenomachina
06/20/2018, 3:57 AMjimn
06/20/2018, 4:07 AMjimn
06/20/2018, 4:08 AMjimn
06/20/2018, 4:10 AMxenomachina
06/20/2018, 4:11 AMjimn
06/20/2018, 4:11 AMxenomachina
06/20/2018, 4:11 AMjimn
06/20/2018, 4:12 AMxenomachina
06/20/2018, 4:12 AMjimn
06/20/2018, 4:13 AMxenomachina
06/20/2018, 4:14 AMjimn
06/20/2018, 4:14 AMjimn
06/20/2018, 4:17 AMInstances of `Option` are either an instance of $some or the object $none
jimn
06/20/2018, 4:21 AMjimn
06/20/2018, 4:25 AMjimn
06/20/2018, 4:26 AMxenomachina
06/20/2018, 4:30 AMxenomachina
06/20/2018, 4:31 AMxenomachina
06/20/2018, 4:32 AMxenomachina
06/20/2018, 4:32 AMxenomachina
06/20/2018, 4:38 AMxenomachina
06/20/2018, 4:39 AMxenomachina
06/20/2018, 4:40 AMjimn
06/20/2018, 4:48 AMjimn
06/20/2018, 4:50 AMxenomachina
06/20/2018, 4:53 AMxenomachina
06/20/2018, 4:53 AMxenomachina
06/20/2018, 4:54 AMxenomachina
06/20/2018, 4:54 AMjimn
06/20/2018, 4:55 AMxenomachina
06/20/2018, 4:56 AMjimn
06/20/2018, 4:57 AMxenomachina
06/20/2018, 4:59 AMxenomachina
06/20/2018, 5:00 AM