на странице 95 книги под названием «Разработка приложений с объективной камерой»
let imap f l =
let l_res = icreate ()
in while not (iempty l) do
ignore (icons (f (ihd l)) l_res) ;
ignore (itl l)
done ;
{ l_res with c = List.rev l_res.c } ;;
Что делает функция игнорирования в приведенной выше кодировке?Мне удалось получить тот же результат без функции игнорирования, реализованной в цикле while, следующим образом:
let imap f l =
let l_res = icreate ()
in while not (iempty l) do
(icons (f (ihd l)) l_res) ;
(itl l)
done ;
{ l_res with c = List.rev l_res.c } ;;
Затем книга продолжается и говорит, что наличие игнорирования подчеркивает тот факт, что это не результатфункций, которые здесь учитываются, но их побочные эффекты влияют на их аргумент.
Если результат функций не учитывается, то как останавливается цикл while?В этом случае мне кажется, что цикл while будет выполняться непрерывно, если результат (itl l) игнорируется.Кроме того, к каким побочным эффектам в их аргументе обращается книга?Спасибо