<html><head></head><body bgcolor="#FFFFFF"><div><br></div><div>On Dec 12, 2012, at 13:14, Rustom Mody <<a href="mailto:rustompmody@gmail.com">rustompmody@gmail.com</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div><br><br><div class="gmail_quote">On Wed, Dec 12, 2012 at 11:30 PM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 12/12/2012 06:58 PM, Rustom Mody wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In Erlang variables start with a capital letter, atoms start with a<br>
lowercase letter.<br>
Functions also start with lowercase.<br>
<br>
How does Erlang distinguish atoms and functions? Especially in the<br>
context of higher order functions.?<br>
<br>
[Disclaimer: noob to Erlang but not functional programming or Lisp.<br>
Erlang atoms look quite close to Lisp atoms though also different...]<br>
</blockquote>
<br></div></div>
Function names are atoms.<br>
<br>
Funs don't have a name (yet) so there's no naming happening there.<span class="HOEnZb"><font color="#888888"></font></span><br>
</blockquote></div><br>I dont understand. Let me try and be more explicit about my concern.<br><br>Let h be a higher-order function of one argument (h/1)<br><br>Now in the call h(foo)<br>How does Erlang know whether foo is a function or an atom?</div></blockquote><br><div>Syntactic context :)</div><div><br></div><div>Parser is a state machine that interprets tokens based on current parse state/context. </div><div><br></div><div>Generally, I like to think of atoms as first class building blocks that references to modules and functions (among other things) can be constructed out of.</div></body></html>