Shrink
Value members
Concrete methods
Cons an element on to the front of a list unless it is already there.
Cons an element on to the front of a list unless it is already there.
Produce a list containing the progressive halving of an integral.
Produce a list containing the progressive halving of an integral.
scala> halves(15)
List(15, 7, 3, 1)
scala> halves(100)
List(100, 50, 25, 12, 6, 3, 1)
scala> halves(-26)
List(-26, -13, -6, -3, -1)
Shrink a list by edging towards the empty list.
Shrink a list by edging towards the empty list.
scala> list(List(1, 2, 3))
List(List(), List(2, 3), List(1, 3), List(1, 2))
>>> list("abcd".toList)
List("", "cd", "ab", "bcd", "acd", "abd", "abc")
''Note we always try the empty list first, as that is the optimal shrink.''
Produce all permutations of removing 'k' elements from a list.
Produce all permutations of removing 'k' elements from a list.
scala> removes(2, "abcdef".toList)
List("cdef", "abef", "abcd")
Shrink an integral number by edging towards a destination.
Shrink an integral number by edging towards a destination.
scala> towards(0, 100)
List(0, 50, 75, 88, 94, 97, 99)
scala> towards(500, 1000)
List(500, 750, 875, 938, 969, 985, 993, 997, 999)
scala> towards(-50, -26)
List(-50, -38, -32, -29, -27)
''Note we always try the destination first, as that is the optimal shrink.''
Shrink a floating-point number by edging towards a destination.
Shrink a floating-point number by edging towards a destination.
scala> towards(0.0, 100)
List(0.0, 50.0, 75.0, 87.5, 93.75, 96.875, 98.4375...)
scala> towards(1.0, 0.5)
List(1.0, 0.75, 0.625, 0.5625, 0.53125, 0.515625, 0.5078125...)
''Note we always try the destination first, as that is the optimal shrink.''