erlang手记(2)

1> c(server_1).
{ok,server_1}
2>
2> Myserver=server_1:start(".").
<0.40.0>
3>
3> client_1:get_file(Myserver,"test").
{ok,<<"afdsaf\nadfasdfsad\n124234\nierweriwer\n">>}
4> client_1:list_dir(Myserver,"/").
{ok,["sys","selinux","tmp",".autofsck","root","opt","sbin",
     "media",".pulse","var","dev","srv","home","bin","misc",
     "mnt",".dbus","lib","etc","lost+found","proc","net",
     ".pulse-cookie","usr","boot"]}
5> c(client_1).
{ok,client_1}
6> client_1:list_dir(Myserver,"/usr").
{ok,["tmp","sbin","src","local","share","bin","libexec",
     "lib","etc","games","java","include"]}
7>
7> client_1:ls(Myserver).
{ok,["client_1.beam","server_1.beam","1","server_1.erl",
     "client_1.erl","erl_crash.dump","test",".1_server.erl.swp"]}
8> halt().




server_1.erl

[deep@deep erlangstudy]$ cat server_1.erl
-module(server_1).
-export([start/1,loop/1]).
start(Dir)->spawn(server_1,loop,[Dir]).
loop(Dir)->
   receive
      {Client,list_dir}->
           Client!{self(),file:list_dir(Dir)};
      {Client,{list_dir,Mydir}}->
           Client!{self(),file:list_dir(Mydir)};
      {Client,{get_file,File}}->
           Fullname=filename:join(Dir,File),
           Client!{self(),file:read_file(Fullname)}
   end,
loop(Dir).

本博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/



client_1.erl

[deep@deep erlangstudy]$ cat client_1.erl
-module(client_1).
-export([ls/1,get_file/2,list_dir/2]).
ls(Server)->
   Server!{self(),list_dir},
   receive
       {Server,Filelist}->
             Filelist
   end.
get_file(Server,File)->
   Server!{self(),{get_file,File}},
   receive
       {Server,Content}->
           Content
   end.
list_dir(Server,Dir)->
   Server!{self(),{list_dir,Dir}},   
   receive
       {Server,Mydir}->
          Mydir
   end.

匹配

Student={student,{1,{name,zhangsang},{age,28}},{2,{name,wangwu},{age,29}}}.

4> {student,{_,{_,Name1},{_,Age1}},{_,{_,Name2},{_,Age2}}}=Student.
{student,{1,{name,zhangsang},{age,28}},
         {2,{name,wangwu},{age,29}}}


5> Name1.
zhangsang
6> Age1.
28
7> Name2.
wangwu
8> Age2.
29



14> Stdx={student,[{1,{name,zhangsang},{age,28}},{2,{name,wangwu},{age,29}}]}.
{student,[{1,{name,zhangsang},{age,28}},
          {2,{name,wangwu},{age,29}}]}
15> {student,Stdinfo}=Stdx.                                                   
{student,[{1,{name,zhangsang},{age,28}},
          {2,{name,wangwu},{age,29}}]}
16> Stdinfo.
[{1,{name,zhangsang},{age,28}},{2,{name,wangwu},{age,29}}]
17> [Mystd1|_]=Stdinfo.
[{1,{name,zhangsang},{age,28}},{2,{name,wangwu},{age,29}}]
18> Mystd1
18> .
{1,{name,zhangsang},{age,28}}
19> {No,{name,Names1},{age,Ages1}}.
* 1: variable 'No' is unbound
20> {No,{name,Names1},{age,Ages1}}=Mystd1.
{1,{name,zhangsang},{age,28}}
21> Names1
21> .
zhangsang
22> Ages1.
28




你可能感兴趣的:(erlang,并行计算)