[erlang-questions] Beginner question

dmkolesnikov <>
Tue Mar 15 07:08:49 CET 2016


Hello,

You are using atoms instead of variables in your program. Erlang variables starts with capital letter.

The receive loop cannot match your message:
>    {From, {insert, key, value}} ->

It expects one triple of atoms but you send different one.

> test:interact(Pid, {insert, testkey, testvalue}).

Dmitry

Sent from my iPhone

> On 15 Mar 2016, at 00:53, Pietro <> wrote:
> 
> Hi all,
> 
> I have recently started to implement a small academic project in Erlang
> and I have bumped into a problem which seems to show to myself I haven't
> grasped something important about the technology itself.
> 
> That's my code :
> 
> -module(test).
> -export([start/0, interact/2]).
> 
> 
> start() ->
>    spawn (fun() -> startloop() end).
> 
> 
> interact(Pid, Request) ->
>    Pid ! {self(), Request},
>    receive 
>    {Pid, Response} -> Response
>    end.
> 
> 
> startloop() ->
>    TableId = ets:new(dictionary, [set]),
>    loop(TableId).
> 
> loop(Table) ->
>    receive
>    {From, {insert, key, value}} ->
>        From ! ets:insert(Table, {key, value}),
>        loop(Table);
>    {From, {lookup, key}} ->
>        From ! ets:lookup(Table, key),
>        loop(Table);
>    Any ->
>        Any
>        
>    end.
> 
> 
> The problem happens when I try to interact with the server I start using
> the command:
> 
> Pid = test:start().
> 
> Then I run :
> 
> test:interact(Pid, {insert, testkey, testvalue}).
> 
> My ershell at this point hangs and nothing happens ... what is happening
> ? Please feel free to redirect me to a more appropriate newsgroup if my
> question is not appropriate or if there is a better one.
> 
> Thanks in advance.
> 
> Pietro.
> 
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160315/68fb8598/attachment.html>


More information about the erlang-questions mailing list