在标题为使用客观caml开发应用程序的书的第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 } ;;
Run Code Online (Sandbox Code Playgroud)
ignore函数在上面的编码中做了什么?如果没有在while循环中实现的ignore函数,我能够得到相同的结果,如下所示:
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 } ;;
Run Code Online (Sandbox Code Playgroud)
然后这本书继续说并且忽略的存在强调了这不是这里重要的函数的结果,而是它们对它们的论证的副作用.
如果函数的结果不计算,那么while循环如何停止?在这种情况下,在我看来,如果忽略(itl l)的结果,while循环将连续循环.另外,对于他们的论点有什么副作用是书中提到的?谢谢
ocaml ×1