// 앞의 binIndexOf 함수를 코틀린 컴파일러가 컴파일한 결과는 이런 식으로 루프로 작동한다 fun binIndexOf( x: Int, array: IntArray, from: Int = 0, to: Int = array.size ): Int { var fromIndex = from var toIndex = to while (true) { if (fromIndex == toIndex) return -1 val midIndex = (fromIndex + toIndex - 1) / 2 val mid = array[midIndex] when { mid < x ->fromIndex = midIndex + 1 mid > x ->toIndex = midIndex else -> return midIndex } } }