挖个坑,2008年慢慢填!

pdvv 2008-01-18 03:27:49
想此版初开时,某曾发贴探询fp何意。如今3个多月过去,这里竟成了死地,嗯啊(摇头中……)
这几天等着过鼠年好生犯困,就找了点资料,虽然现在还没有入门,俺已决定开始学习fp,锻炼锻炼已经有点僵硬的思维,发贴留念。

俺要作一只恶狼!
...全文
278 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
有点难度哦
wudichong 2008-04-10
  • 打赏
  • 举报
回复
某不才,愿闻LZ fp何解?
xingchenbbs 2008-03-19
  • 打赏
  • 举报
回复
星辰技术社区:www.netcsharp.cn ,在这里,您不需要发帖,回帖,甚至是注册,您只需每天浏览下,即可获取最新的.NET技术信息~

我们的宗旨:以最快的速度为您提供最佳的解决方案
wei_feihong 2008-03-14
  • 打赏
  • 举报
回复
瞎搞!
pdvv 2008-02-27
  • 打赏
  • 举报
回复
亲爱的CSDN用户pdvv,您好:您在CSDN发的《挖个坑,2008年慢慢填!》这个帖子:https://forum.csdn.net/PointForum/Manage/TopicManageView.aspx?forumID=dcf780eb-cb8e-49a4-97a3-28177824ec6a&topicID=37f6b5f7-6533-4d2f-92cf-aefeed6b5796&date=2008-1-18+15%3a27%3a49已经发出很长时间了,系统将会在一定时间进行强制结贴。强制结帖的帖子没有任何回复得分,同时不返回帖子分数。建议您尽快去结帖!如果这个帖子的回复中没有你满意的答案,你也可以做无答案结帖。 (如果点击本邮件中的网址无效,请将该网址复制并粘贴至浏览器的地址栏中)。----------------------------------------------------------------------- WWW.CSDN.NET - 中国最大的IT技术社区,为IT专业技术人员提供最全面的信息传播和服务平台用户服务支持:webmaster@csdn.net



sick! 88
pdvv 2008-01-25
  • 打赏
  • 举报
回复
过年去了
pdvv 2008-01-22
  • 打赏
  • 举报
回复
测试《3.5 A Larger Example》通过,此处作个标记,计划以后用py作个界面包装一下。
pdvv 2008-01-21
  • 打赏
  • 举报
回复

-module(pping).

-export([start/1, ping/2, pong/0]).

ping(0, Pong_Node) ->
{pong, Pong_Node} ! finished,
io:format("ping finished~n", []);

ping(N, Pong_Node) ->
{pong, Pong_Node} ! {ping, self()},
receive
pong ->
io:format("Ping received pong~n", [])
end,
ping(N - 1, Pong_Node).

pong() ->
receive
finished ->
io:format("Pong finished~n", []);
{ping, Ping_PID} ->
io:format("Pong received ping~n", []),
Ping_PID ! pong,
pong()
end.

start(Ping_Node) ->
register(pong, spawn(pping, pong, [])),
spawn(Ping_Node, pping, ping, [3, node()]).



-module(ppong).

-export([start_ping/1, start_pong/0, ping/2, pong/0]).

ping(0, Pong_Node) ->
{pong, Pong_Node} ! finished,
io:format("ping finished~n", []);

ping(N, Pong_Node) ->
{pong, Pong_Node} ! {ping, self()},
receive
pong ->
io:format("Ping received pong~n", [])
end,
ping(N - 1, Pong_Node).

pong() ->
receive
finished ->
io:format("Pong finished~n", []);
{ping, Ping_PID} ->
io:format("Pong received ping~n", []),
Ping_PID ! pong,
pong()
end.

start_pong() ->
register(pong, spawn(ppong, pong, [])).

start_ping(Pong_Node) ->
spawn(ppong, ping, [3, Pong_Node]).



D:\et>erl -sname pong
Eshell V5.6 (abort with ^G)
(pong@cl)1> l(ppong).
{module,ppong}
(pong@cl)2> ppong:start_pong().
true



D:\et>erl -sname ping
Eshell V5.6 (abort with ^G)
(ping@cl)1> l(pping).
{module,pping}
(ping@cl)2> pping:start(pong@cl).
<5517.43.0>
(ping@cl)3> Pong received ping
(ping@cl)3> Ping received pong
(ping@cl)3> Pong received ping
(ping@cl)3> Ping received pong
(ping@cl)3> Pong received ping
(ping@cl)3> Ping received pong
(ping@cl)3> ping finished
(ping@cl)3> Pong finished
(ping@cl)3>
pdvv 2008-01-21
  • 打赏
  • 举报
回复
在分布式环境下测试了上述代码http://.../doc/getting_started/conc_prog.html#3.4
pdvv 2008-01-21
  • 打赏
  • 举报
回复

-module(test2).
-export([start/0, ping/2, pong/0]).

%%进程间发送消息

ping(0, Pong_PID) ->
Pong_PID ! finished,
io:format("ping finished", []);

ping(N, Pong_PID) ->
Pong_PID ! {ping, self()},
receive
pong ->
io:format("Ping received pong~n", [])
end,
ping(N - 1, Pong_PID).

pong() ->
receive
finished ->
io:format("Pong finished~n", []);
{ping, Ping_PID} ->
io:format("Pong receive ping~n", []),
Ping_PID ! pong,
pong()
end.

start() ->
Pong_PID = spawn(test2, pong, []),
spawn(test2, ping, [3, Pong_PID]).


ps.可以用register()为pong进程注册一个名字,就不用每次传递Pong_PID了。
pdvv 2008-01-18
  • 打赏
  • 举报
回复
[code=csdn]just test[/code]
pdvv 2008-01-18
  • 打赏
  • 举报
回复

-module(test).
-export([list_max/1]).

%%列表求最大值:
list_max([Head|Rest]) ->
list_max(Rest, Head).

list_max([], Res) ->
Res;
list_max([Head|Rest], Result_so_far) when Head > Result_so_far ->
list_max(Rest, Head);
list_max([Head|Rest], Result_so_far) ->
list_max(Rest, Result_so_far).

3,424

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧