Как создавать динамически условия


#1

Всем привет подскажите как такое можно реализовать. Есть строки некие условия для примера напишу x1<x2<x3, x1<x2<x3>x4, x1<x2<x3>x4<x5. Как написать функцию которая будет принимать одно из подобных условий(знаки неравенств могут быть различные и в разном порядке) и возвращать булевое значение (х - предположим Int)?


#2

что-то типо такого?

func compare<T: Comparable>(a: T, b: T, method: (T, T) -> Bool) -> T {
    method(a, b) ? a : b
}

print(compare(a: 3, b: 4, method: >)) // 4
print(compare(a: 3, b: 4, method: <)) // 3