Мне было интересно, есть ли у кого-нибудь понимание того, как создать функцию, которая будет принимать список и возвращать только те термины, которые могут быть сгенерированы за x раз.
Например, у меня есть функцияэто займет около 10 минут, чтобы вернуть только несколько терминов.Вместо того, чтобы угадывать, сколько терминов я смогу сгенерировать (с помощью дубля x), я хотел бы просто добавить бесконечный список в мою неэффективную функцию и иметь отдельную функцию, решающую, когда истечь время.
Так что-то вроде этого: [5,7,10] = takeUntilTime (10 sec) . inefficientFunction $ [1..]
Я довольно новичок в Haskell, но я думаю, что могу написать эту функцию, чтобы просто проверять таймер после того, как каждый новый термин генерируется и останавливается, если время истекло.
Однако, что если 4-й срок займет вечность?Был бы способ остановить неэффективную функцию от завершения генерации этого 4-го члена, даже если он уже начался?
У меня нет больших надежд на прямой ответ, но я ценю любую интуицию по этому поводу.Спасибо.