Есть ли встроенный эквивалент функции Haskell's until
в Python?Эквивалент Haskell «до» в Python
По существу, until
применяет функцию f
к предоставленному исходному значению v
, затем применяет f
к f(v)
, пока условие не будет выполнено. Другими словами, until
возвращает результат многократного применения f
до тех пор, пока не будет выполнено условие.
я могу реализовать это в Python как так:
def until(cond, func, starting):
val = starting
while not cond(val):
val = func(val)
return val
Должен ли я использовать эту реализацию, или есть какая-то функция библиотеки я должен использовать вместо этого?
Я бы сказал, что я не пытаюсь использовать do/while loop. Цикл do/while является процедурной конструкцией, которая, вероятно, может быть использована для решения этой же проблемы, но я не думаю, что это эквивалентно «до» Haskell. Может быть, это только моя неопытность с Python. –
@BlueIce Не совсем, он спрашивает о встроенной * функции *, а не о выражении. – Bakuriu
Я не думаю, что в нем что-то встроено. У 'itertools' есть хорошие инструменты, которые могут быть знакомы с Haskell, но не тот, кто это делает. Я думаю, что цикл while будет самой естественной реализацией Python. –