на странице 95 книги, озаглавленной «Разработка приложений с объективным caml
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 } ;;
] Что делает функция ignore в приведенном выше коде? Я смог получить тот же результат без функции игнорирования, реализованной в цикл 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 } ;;
Затем в книге говорится, что наличие ignore подчеркивает тот факт, что здесь учитывается не результат функций, а их побочные эффекты на их аргумент.
результат функций не считается, тогда как цикл while останавливается? В этом случае мне кажется, что цикл while будет непрерывно повторяться, если результат (itl l) игнорируется. Кроме того, о каких побочных эффектах их аргументов говорится в книге? Спасибо