<div>
                    In your second sample, isPal is just an atom, hence the error.  Instead, use "fun isPal/1" to indicate that you're passing a function.
                </div><div><br></div><div>Cheers,</div><div><br></div><div>Steve</div>
                <div><div><br></div><div>-- </div><div>Steve Strong</div><div>Sent with <a href="http://www.sparrowmailapp.com/?sig">Sparrow</a></div><div><br></div></div>
                 
                <p style="color: #A0A0A8;">On Wednesday, 28 August 2013 at 13:54, Nadav Chernin wrote:</p>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div dir="ltr"><div>Hi, all</div><div><br></div><div>I'm learning Erlang with Project Euler.</div><div><br></div><div>This is my solution for problem 4.</div><div><br></div><div><br></div><div><b>-module(euler).</b></div>
<div><b>-export([problem4/0]).</b></div><div><b><br></b></div><div><b>cand()->[X*Y||X<-lists:seq(100,999),Y<-lists:seq(100,999)].</b></div><div><b>isPal(X)->integer_to_list(X)==lists:reverse(integer_to_list(X)).</b></div>
<div><b>problem4()->lists:max(lists:filter(fun(A)->isPal(A) end,cand())).</b></div><div><b><br></b></div><div>Before it, my code was:</div><div><br></div><div><div><b>-module(euler).</b></div><div><b>-export([problem4/0]).</b></div>
<div><b><br></b></div><div><b>cand()->[X*Y||X<-lists:seq(100,999),Y<-lists:seq(100,999)].</b></div><div><b>isPal(X)->integer_to_list(X)==lists:reverse(integer_to_list(X)).</b></div><div><b>problem4()->lists:max(lists:filter<span style="background-color:rgb(255,0,0)">(isPal</span>,cand())).</b></div>
</div><div><b><br></b></div><div>Difference from my final solution - using isPal instead fun(A)->isPal(A) end</div><div><br></div><div>But exception occured during execution:</div><div><br></div><div><div>exception error: no function clause matching </div>
<div>                    lists:filter(isPal,</div><div>                                 [10000,10100,10200,10300,10400,10500,10600,</div><div>                                  10700,10800,10900,11000,11100,11200,11300,</div>
<div>                                  11400,11500,11600,11700,11800,11900,12000,</div><div>                                  12100,12200,12300,12400,12500,12600|...])</div></div><div><br></div><div>Please, explain me why i can't use function as is, without using lambda function.</div>
<div>I come to Erlang from Haskell, and there i can do this,</div><div><br></div><div>Thanks, Nadav</div><div><br></div></div>
</div><div><div>_______________________________________________</div><div>erlang-questions mailing list</div><div><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a></div><div><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>