Erlang学习:通过参数实现状态保存
来源:互联网 发布:淘宝改差评收费 编辑:程序博客网 时间:2024/06/16 19:06
以下是来自learn you some erlang for great good一书中的例子,相当的经典,直接拿来用了。
-module(kitchen).-compile(export_all).start(FoodList) -> spawn(?MODULE, fridge, [FoodList]).store(Pid, Food) -> Pid ! {self(), {store, Food}}, receive {Pid, Msg} -> Msg after 3000 -> timeout end.take(Pid, Food) -> Pid ! {self(), {take, Food}}, receive {Pid, Msg} -> Msg after 3000 -> timeout end.fridge(FoodList) -> receive {From, {store, Food}} -> From ! {self(), ok}, fridge([Food|FoodList]); {From, {take, Food}} -> case lists:member(Food, FoodList) of true -> From ! {self(), {ok, Food}}, fridge(lists:delete(Food, FoodList)); false -> From ! {self(), not_found}, fridge(FoodList) end; terminate -> ok end.
1> c(
kitchen
)
.
{ok,kitchen}
2>
Pid
=
kitchen:start
([
rhubarb
,
dog
,
hotdog
])
.
<0.84.0>
3>
kitchen:take
(Pid,
dog
)
.
{ok,dog}
4>
kitchen:take
(Pid,
dog
)
.
not_found
0 0
- Erlang学习:通过参数实现状态保存
- Erlang---启动参数学习
- erlang---启动参数学习/研究
- Erlang---启动参数学习/研究
- Erlang---启动参数学习/研究
- erlang---启动参数学习/研究
- Erlang---启动参数学习/研究
- 实现TreeView状态的保存
- Android实现activity状态保存
- vue组件状态保存实现
- erlang的模块参数化及其实现
- Activity 状态保存 OnSaveInstanceState参数解析
- 通过SaveFileDialog实现保存文件
- [Erlang 学习笔记]Erlang 简单实现 KMP--字符串匹配算法
- Android重写FragmentTabHost来实现状态保存
- 保存Fragment状态最好的实现
- FragmentTabHost中如何实现状态保存
- Android重写FragmentTabHost来实现状态保存
- 斜线/反斜线\双斜线//双反斜线\\
- Where's Waldorf?
- oracle 一条龙学习
- OpenGL ES的状态机说法其实也没那么云山雾照,比较容易理解!
- OpenGL ES 版本与iOS版本的支持对应关系以及EAGL的来源分析
- Erlang学习:通过参数实现状态保存
- django model field validator 设置
- 电影中的黑客高手都是这样编程的
- UVA 11800 Determine the Shape
- 1385:重建二叉树 @jobdu
-
- JSB CCDictionary CCDictionary to JSB CCDictionary绑定jsb plist file
- 海外邮件中继转发原理
- sublime text 3+mingw 编译system("pause"):时报错,error: 'system' was not declared in this scope system("