All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.arrow.core.Comparison.kt Maven / Gradle / Ivy

There is a newer version: 2.0.1
Show newest version
package arrow.core

public fun > sort(a: A, b: A): Pair =
  if (a <= b) Pair(a, b) else Pair(b, a)

public fun > sort(a: A, b: A, c: A): Triple =
  when {
    a <= b && b <= c -> Triple(a, b, c)
    a <= b -> if (c <= a) Triple(c, a, b) else Triple(a, c, b)
    b <= a && a <= c -> Triple(b, a, c)
    else -> if (c <= b) Triple(c, b, a) else Triple(b, c, a)
  }

public fun > sort(a: A, vararg aas: A): List =
  (listOf(a) + aas).sorted()

public fun  sort(a: A, b: A, comparator: Comparator): Pair =
  if (comparator.compare(a, b) <= 0) Pair(a, b) else Pair(b, a)

public fun  sort(a: A, b: A, c: A, comparator: Comparator): Triple =
  when {
    comparator.compare(a, b) <= 0 && comparator.compare(b, c) <= 0 -> Triple(a, b, c)
    comparator.compare(a, b) <= 0 -> if (comparator.compare(c, a) <= 0) Triple(c, a, b) else Triple(a, c, b)
    comparator.compare(b, a) <= 0 && comparator.compare(a, c) <= 0 -> Triple(b, a, c)
    else -> if (comparator.compare(c, b) <= 0) Triple(c, b, a) else Triple(b, c, a)
  }

public fun  sort(a: A, vararg aas: A, comparator: Comparator): List =
  (listOf(a) + aas).sortedWith(comparator)

public fun sort(a: Byte, b: Byte): Pair =
  if (a <= b) Pair(a, b) else Pair(b, a)

public fun sort(a: Byte, b: Byte, c: Byte): Triple =
  when {
    a <= b && b <= c -> Triple(a, b, c)
    a <= b -> if (c <= a) Triple(c, a, b) else Triple(a, c, b)
    b <= a && a <= c -> Triple(b, a, c)
    else -> if (c <= b) Triple(c, b, a) else Triple(b, c, a)
  }

public fun sort(a: Byte, vararg aas: Byte): List =
  (arrayOf(a) + aas.toTypedArray()).sorted()

public fun sort(a: Short, b: Short): Pair =
  if (a <= b) Pair(a, b) else Pair(b, a)

public fun sort(a: Short, b: Short, c: Short): Triple =
  when {
    a <= b && b <= c -> Triple(a, b, c)
    a <= b -> if (c <= a) Triple(c, a, b) else Triple(a, c, b)
    b <= a && a <= c -> Triple(b, a, c)
    else -> if (c <= b) Triple(c, b, a) else Triple(b, c, a)
  }

public fun sort(a: Short, vararg aas: Short): List =
  (arrayOf(a) + aas.toTypedArray()).sorted()

public fun sort(a: Int, b: Int): Pair =
  if (a <= b) Pair(a, b) else Pair(b, a)

public fun sort(a: Int, b: Int, c: Int): Triple =
  when {
    a <= b && b <= c -> Triple(a, b, c)
    a <= b -> if (c <= a) Triple(c, a, b) else Triple(a, c, b)
    b <= a && a <= c -> Triple(b, a, c)
    else -> if (c <= b) Triple(c, b, a) else Triple(b, c, a)
  }

public fun sort(a: Int, vararg aas: Int): List =
  (arrayOf(a) + aas.toTypedArray()).sorted()

public fun sort(a: Long, b: Long): Pair =
  if (a <= b) Pair(a, b) else Pair(b, a)

public fun sort(a: Long, b: Long, c: Long): Triple =
  when {
    a <= b && b <= c -> Triple(a, b, c)
    a <= b -> if (c <= a) Triple(c, a, b) else Triple(a, c, b)
    b <= a && a <= c -> Triple(b, a, c)
    else -> if (c <= b) Triple(c, b, a) else Triple(b, c, a)
  }

public fun sort(a: Long, vararg aas: Long): List =
  (arrayOf(a) + aas.toTypedArray()).sorted()




© 2015 - 2025 Weber Informatics LLC | Privacy Policy