[erlang-questions] Interesting style i haven't seen....

Greg Smyth gsmyth@REDACTED
Fri Oct 30 17:40:42 CET 2009


Yeah,

It certainly wasn't a trick question, unless the trick is on me... :)

I still dont get how:-

Variable = {atom, Value},
Variable:function/0.

then gets converted to a call to atom:function({atom, Value})

if that makes sense...?

Cheers,
Greg

On Fri, Oct 30, 2009 at 4:36 PM, Chris Tilt <chris.tilt@REDACTED> wrote:
> It’s the use of Dog:woof() that throws me. Dog is a variable and I don’t
> understand the semantics of “Variable:function()”.
> Cheers, Chris
>
>
> On 10/30/09 9:32 AM, "Dave Smith" <dizzyd@REDACTED> wrote:
>
> Is this a trick question? I feel like I'm missing something here... :)
>
> If the confusion is re: the use of "new", remember that Erlang has no
> concept of objects or explicit allocation (like that anyways).
>
> D.
>
> On Fri, Oct 30, 2009 at 10:25 AM, Greg Smyth <gsmyth@REDACTED> wrote:
>> A friend just came up with this, and i thought it was pretty
>> interesting(arguments against doing this kind of thing in Erlang
>> aside...) as I'd never seen this type of thing done before...
>>
>> Anyone care to shed some light on why/how this works:-
>>
>> %%
>> -module(dog).
>> -export([new/1, woof/1]).
>>
>> new(Name) -> {dog, Name}.
>>
>> woof(Self) ->
>>  {dog, Name} = Self,
>>  io:format("~p says 'woof!'~n", [Name]).
>> %%
>>
>> % 13> c(dog).
>> % {ok,dog}
>>
>> % 14> Dog = dog:new("Fido").
>> % {dog,"Fido"}
>>
>> % 15> Dog:woof().
>> % "Fido" says 'woof!'
>> % ok
>>
>> Many thanks,
>> Greg
>>
>> ________________________________________________________________
>> erlang-questions mailing list. See http://www.erlang.org/faq.html
>> erlang-questions (at) erlang.org
>>
>>
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>
>


More information about the erlang-questions mailing list