en la página 95 del libro titulado con el desarrollo de aplicaciones caml objetivoignorar función en OCaml
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 } ;;
¿Qué hace la función de hacer caso omiso de la codificación de arriba? que era capaz de conseguir el mismo resultado sin la función de ignorar implementado en el bucle while de la siguiente manera:
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 } ;;
A continuación, el libro sigue y dice que la presencia de ignorar hace hincapié en el hecho de que no es el resultado de las funciones que cuentan aquí, pero sus efectos secundarios en su argumento.
si el resultado de las funciones no cuenta, entonces ¿cómo se detiene el ciclo while? En este caso, me parece que el ciclo while se repetirá continuamente si se ignora el resultado de (itl l). Además, ¿qué efectos secundarios tiene su argumento al referirse al libro? Gracias
el lado imperativo de ocaml es bastante confuso. Gracias por tu ayuda por cierto. – ocamlNewcomer
ignorar se puede implementar como: 'let ignore v = let _ = v in()' fyi. De hecho, antes de aprender sobre 'ignorar' haría eso para deshacerme de las advertencias del compilador. –