On 26/01/2008, <b class="gmail_sendername">Anthony Kong</b> <<a href="mailto:anthony.hw.kong@gmail.com">anthony.hw.kong@gmail.com</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>When I tried to run the p2:main(), I got the following error:<br><br>2> p2:main().<br><br>=ERROR REPORT==== 26-Jan-2008::13:27:42 ===<br>Error in process <0.87.0> with exit value:<br>{function_clause,[{p2,'-main/0-lc$^0/1-0-',[3]},{erl_eval,do_apply,5},{shell,exprs,6},{shell,eval_loop,3}]}<br>
<br>** exited: {function_clause,[{p2,'-main/0-lc$^0/1-0-',[3]},<br>                             {erl_eval,do_apply,5},<br>                             {shell,exprs,6},<br>                             {shell,eval_loop,3}]} **<br>
<br><br>My questions:<br><br>1) Why the list comprehension in the p2:main() caused the<br>function_clause exception?<br>2) In the stack trace, what does '-main/0-lc$^0/1-0-'  mean?</blockquote><div><br>*List* comprehensions work on lists selecting values from a
list or lists, you function getfib returns an integer. If you need a
function which works by selecting messages from received from a process
then you will have to write one yourself.<br>
<br>
This is the name of an internal function generated by the compiler, in
this case the recursive function which "is" the list comprehension.<br>
<br>
Robert<br>
<br></div></div>