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

Chris Tilt <>
Fri Oct 30 17:36:06 CET 2009


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" <> 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 <> 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