<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="top"><p dir="ltr">Yes that's right. You'd model your interface around messages passed in and sent out. State mutation would be contained inside the process state.</p>
<p dir="ltr">The receive primitive blocks until it gets a message from the process mailbox so you could use it to make a message processing loop passing a state variable into the loop like I showed toward the end of the workshop.</p>
<p dir="ltr">Mark</p>
<p dir="ltr"><a href="https://overview.mail.yahoo.com/mobile/?.src=Android">Sent from Yahoo Mail on Android</a></p>
</td></tr></table>            <div id="_origMsg_">
                <div>
                    <br />
                    <div>
                        <div style="font-size:0.9em">
                            <hr size="1">
                            <b>
                                <span style="font-weight:bold">From:</span>
                            </b>
                            Zakariyya Mughal <zaki.mughal@gmail.com>;                            <br>
                            <b>
                                <span style="font-weight:bold">To:</span>
                            </b>
                            Houston.pm located in Houston, TX. <houston@pm.org>;                                                                                                     <br>
                            <b>
                                <span style="font-weight:bold">Subject:</span>
                            </b>
                            Re: [pm-h] Thursday                            <br>
                            <b>
                                <span style="font-weight:bold">Sent:</span>
                            </b>
                            Sat, Mar 15, 2014 4:01:26 AM                            <br>
                        </div>
                            <br>
                            <table cellspacing="0" cellpadding="0" border="0">
                                <tbody>
                                    <tr>
                                        <td valign="top">On 2014-03-11 at 22:23:59 -0500, Mark Allen wrote:<br clear="none">> Cool- looking forward to it!<br clear="none"><br clear="none">Thanks for the talk! I really enjoyed it.<br clear="none"><br clear="none">I had some thoughts about Erlang — relating it to my experience with<br clear="none">Prolog (even though many of the semantics are different).<br clear="none"><br clear="none">A couple of weeks ago, I was building a machine learning simulation in<br clear="none">Prolog and towards the end, I found that building all my data structures<br clear="none">out of lists and compound terms was slowly getting in the way as I was<br clear="none">refactoring my design. This is probably because I wasn't thinking far<br clear="none">enough ahead, but I thought that having an object system would help keep<br clear="none">some things manageable.<br clear="none"><br clear="none">I came across another
 language that uses Prolog as a backend like Erlang<br clear="none">used to: Logtalk [^1]. I was wondering if Erlang had anything similar.<br clear="none">All I could find was that Joe Armstrong doesn't like OO [^2] and an old<br clear="none">project called ETC [^3].<br clear="none"><br clear="none">As far as I have read, in Erlang, one usually models each process as an<br clear="none">object with interfaces defined by modules. Is this correct?<br clear="none"><br clear="none">[^1]: <<a shape="rect" href="http://logtalk.org/" target="_blank">http://logtalk.org/</a>><br clear="none">[^2]: <<a shape="rect" href="http://harmful.cat-v.org/software/OO_programming/why_oo_sucks" target="_blank">http://harmful.cat-v.org/software/OO_programming/why_oo_sucks</a>><br clear="none">[^3]: <<a shape="rect" href="https://code.google.com/p/ect/" target="_blank">https://code.google.com/p/ect/</a>><br clear="none"><br clear="none">Cheers,<br
 clear="none">- Zaki<br clear="none"><br clear="none"><br clear="none">> Sent from my iPhone<br clear="none">> <br clear="none">> > On Mar 11, 2014, at 9:12 PM, "G. Wade Johnson" <<a shape="rect" ymailto="mailto:gwadej@anomaly.org" href="javascript:return">gwadej@anomaly.org</a>> wrote:<br clear="none">> > <br clear="none">> > On Tue, 11 Mar 2014 11:26:21 -0700 (PDT)<br clear="none">> > Mark Allen <<a shape="rect" ymailto="mailto:mrallen1@yahoo.com" href="javascript:return">mrallen1@yahoo.com</a>> wrote:<br clear="none">> > <br clear="none">> >> I would really like to run through it with a group of people who are<br clear="none">> >> truly new to Erlang and see with "new eyes" what I'm trying to<br clear="none">> >> communicate.<br clear="none">> > <br clear="none">> > It's sounding like we have a new plan.<br clear="none">> > <br
 clear="none">> > Mark can do Introducing Erlang and we'll fill the remaining time with<br clear="none">> > lightning talks. (Some subset of the three we have, or any others that<br clear="none">> > want to volunteer.)<br clear="none">> > <br clear="none">> > Looks like I need to change the announcement again.<grin/><br clear="none">> > <br clear="none">> > G. Wade<br clear="none">> > <br clear="none">> >> Mark<br clear="none">> >> <br clear="none">> >> <br clear="none">> >> <br clear="none">> >> On Tuesday, March 11, 2014 1:14 PM, Todd Rinaldo <<a shape="rect" ymailto="mailto:toddr@cpanel.net" href="javascript:return">toddr@cpanel.net</a>><br clear="none">> >> wrote: <br clear="none">> >> I kinda like the last one.<br clear="none">> >> <br clear="none">> >> <br clear="none">> >> On Mar 11, 2014, at
 12:36 PM, Mark Allen <<a shape="rect" ymailto="mailto:mrallen1@yahoo.com" href="javascript:return">mrallen1@yahoo.com</a>> wrote:<br clear="none">> >> <br clear="none">> >> The last is a workshop "bring your laptop" type-thing<br clear="none">> >>> <br clear="none">> >>> <br clear="none">> >>> The other talks could be anywhere from 10-50 minutes long<br clear="none">> >>> <br clear="none">> >>> <br clear="none">> >>> <br clear="none">> >>> On Tuesday, March 11, 2014 11:21 AM, G. Wade Johnson<br clear="none">> >>> <<a shape="rect" ymailto="mailto:gwadej@anomaly.org" href="javascript:return">gwadej@anomaly.org</a>> wrote:<br clear="none">> >>> <br clear="none">> >>> On Tue, 11 Mar 2014 09:02:56 -0700 (PDT)<br clear="none">> >>> Mark Allen <<a shape="rect"
 ymailto="mailto:mrallen1@yahoo.com" href="javascript:return">mrallen1@yahoo.com</a>> wrote:<br clear="none">> >>> <br clear="none">> >>>> I can give talks on one or more of the following topics Thursday:<br clear="none">> >>>> <br clear="none">> >>>> * Functional list operations in Perl (map, filter, fold)<br clear="none">> >>>> * Using roles for object composition when building Perl web clients<br clear="none">> >>>> * Packaging Perl applications using Docker<br clear="none">> >>>> * Introducing Erlang (a new side project I'm working on to get<br clear="none">> >>>> programmers who have some experience up and running with Erlang<br clear="none">> >>>> and a non-trivial application under an hour.)<br clear="none">> >>>> <br clear="none">> >>>> Do any of those sound interesting?<br
 clear="none">> >>> <br clear="none">> >>> Are these full presentations, or lightning talks? (Some look big and<br clear="none">> >>> others could be quicker.)<br clear="none">> >>> <br clear="none">> >>> G. Wade<br clear="none">> >>> <br clear="none">> >>> <br clear="none">> >>>> Mark<br clear="none">> >>>> <br clear="none">> >>>> <br clear="none">> >>>> <br clear="none">> >>>> On Tuesday, March 11, 2014 10:49 AM, G. Wade Johnson<br clear="none">> >>>> <<a shape="rect" ymailto="mailto:gwadej@anomaly.org" href="javascript:return">gwadej@anomaly.org</a>> wrote: <br clear="none">> >>>> On Tue, 11 Mar 2014 10:14:24 -0500<br clear="none">> >>>> Todd Rinaldo <<a shape="rect" ymailto="mailto:todd@rinaldo.us"
 href="javascript:return">todd@rinaldo.us</a>> wrote:<br clear="none">> >>>> <br clear="none">> >>>>> All,<br clear="none">> >>>>> <br clear="none">> >>>>> My original offer was to do a 5 minute lightning talk on<br clear="none">> >>>>> Mail::SpamAssassin. I do not actually have content for a full<br clear="none">> >>>>> meeting.<br clear="none">> >>>> <br clear="none">> >>>> Actually, so far I have 3 lightning talks (including yours) lined<br clear="none">> >>>> up.<br clear="none">> >>>> <br clear="none">> >>>> 1. Todd: Email SPAM<br clear="none">> >>>> 2. Reini: Global Destruction<br clear="none">> >>>> 3. Wade: Tweaking gcode files<br clear="none">> >>>> <br clear="none">> >>>> Come on people, we can get a few
 more talks lined up. It's only 5<br clear="none">> >>>> minutes.<br clear="none">> >>>> <br clear="none">> >>>> Last time we did the lightning talks, we had requests from the<br clear="none">> >>>> audience to fill out some of the time. But a starting list of talks<br clear="none">> >>>> would definitely make things easier.<br clear="none">> >>>> <br clear="none">> >>>>> It sounds like we have no talk on Thursday. I propose a social<br clear="none">> >>>>> meeting. Who's up for it. I got sick so couldn't attend when we<br clear="none">> >>>>> tried Empire Cafe last time. How did that venue work out?<br clear="none">> >>>> <br clear="none">> >>>> As I recall, spacing was kind of tight at Empire Cafe (and the<br clear="none">> >> construction on Westheimer made
 getting there loads of fun).<br clear="none">> >>>> <br clear="none">> >>>> G. Wade<br clear="none">> >>> <br clear="none">> >>> <br clear="none">> >>> -- <br clear="none">> >>> C makes it easy to shoot yourself in the foot; C++ makes it harder,<br clear="none">> >>> but when you do, it blows away your whole leg.     -- Bjarne<br clear="none">> >>> Stroustrup<br clear="none">> >>> <br clear="none">> >>> <br clear="none">> >>> <br clear="none">> >>> _______________________________________________<br clear="none">> >>> Houston mailing list<br clear="none">> >>> <a shape="rect" ymailto="mailto:Houston@pm.org" href="javascript:return">Houston@pm.org</a><br clear="none">> >>> <a shape="rect" href="http://mail.pm.org/mailman/listinfo/houston"
 target="_blank">http://mail.pm.org/mailman/listinfo/houston</a><br clear="none">> >>> Website: <a shape="rect" href="http://houston.pm.org/" target="_blank">http://houston.pm.org/</a><br clear="none">> >> <br clear="none">> >> Todd Rinaldo<br clear="none">> >> <a shape="rect" ymailto="mailto:toddr@cpanel.net" href="javascript:return">toddr@cpanel.net</a><br clear="none">> > <br clear="none">> > <br clear="none">> > -- <br clear="none">> > Do not meddle in the affairs of dragons, for you are crunchy and taste<br clear="none">> > good with ketchup.                                     -- C. Titus Brown<br clear="none">> _______________________________________________<br clear="none">> Houston mailing list<br clear="none">> <a shape="rect" ymailto="mailto:Houston@pm.org" href="javascript:return">Houston@pm.org</a><br clear="none">> <a shape="rect"
 href="http://mail.pm.org/mailman/listinfo/houston" target="_blank">http://mail.pm.org/mailman/listinfo/houston</a><br clear="none">> Website: <a shape="rect" href="http://houston.pm.org/" target="_blank">http://houston.pm.org/</a><div class="yqt7557010677" id="yqtfd89712"><br clear="none">_______________________________________________<br clear="none">Houston mailing list<br clear="none"><a shape="rect" ymailto="mailto:Houston@pm.org" href="javascript:return">Houston@pm.org</a><br clear="none"><a shape="rect" href="http://mail.pm.org/mailman/listinfo/houston" target="_blank">http://mail.pm.org/mailman/listinfo/houston</a><br clear="none">Website: <a shape="rect" href="http://houston.pm.org/" target="_blank">http://houston.pm.org/</a></div></td>
                                    </tr>
                                </tbody>
                            </table>
                    </div>
                </div>
            </div>