сообщение кошки задерживается до конца вычисления - PullRequest
2 голосов
/ 07 апреля 2020
library(numbers)
dropletE
function (n) 
{
    stopifnot(is.numeric(n), length(n) == 1, n >= 1)
    if (n > 1000) 
        cat("Warning: Calculating n > 1000 digits will take a long time!\n")
    n <- n + 1
}

Теперь, если я запускаю

dropletE(10000)

, сценарий переходит к вычислениям без отображения сообщения cat на экране (стандартный вывод). Только после выбора Mis c -> Stop All Computations появляется сообщение:

Warning: Calculating n > 1000 digits will take a long time!

Q1: почему задерживается печать сообщения?

Q2: как добавить в это сообщение является трехсторонним вопросом для пользователя, хочет ли он продолжить / изменить значение или выйти из сценария?

Мне известна функция readline (), но можно ли ее использовать внутри вызова cat ?

Спасибо

...