练习3-4 编写创建一个数据库模块db.erl,它能够模拟数据库 存储,检索和删除元素。
提示使用列表和元组作为你的主要数据结构,当测试程序时,请记住Erlang中变量是单次赋值。
接口:
db:new() =>Db.
db:destroy(Db) =>ok.
db:write(Key,Element,Db) =>newDb.
db:read(Key,Db) =>{ok,Element}|{error,instance}.
db:match(Element,Db) =>[key1,.......,keyN].
代码如下:
%% Author: liu.guangjun
%% Created: 2011-12-5
%% Description: TODO: Add description to db
-module(db).
%%
%% Include files
%%
%%
%% Exported Functions
%%
-export([new/0,write/3,delete/2,read/2,match/2]).
% -export([destroy/1]).
%%
%% Local Functions
%%
new()->[].
%destroy(Db)-> f(Db).
write(Key,Element,Db)->
[{Key,Element}|Db].
%% read(Key,Db)->
%% case lists:keyfind(Key, 1, Db) of
%% {_,Element} ->{ok,Element};
%% false->{error,instance}
%% end.
read(_,[])->{error,instance};
read(Key,[H1|T1])->
case H1 of
{Key,Element} ->
{ok,Element};
_ ->
read(Key,T1)
end.
delete(Key,Db)->delete_element(Key,Db,[]).
delete_element(_,[],List2)->List2;
delete_element(Key,[H1|T1],T2)->
case H1 of
{Key,_} ->
delete_element(Key,T1,T2);
_->
delete_element(Key,T1,[H1|T2])
end.
match(Element,Keys)->match_element(Element,Keys,[]).
match_element(_,[],Keys)->Keys;
match_element(Element,[H|T],T2)->
case H of
{H2,Element} ->
match_element(Element,T,[H2|T2]);
_->
match_element(Element,T,T2)
end.
分享到:
相关推荐
包括erlang-23.3.4.3-1.el7.x86_64.rpm和rabbitmq-server-3.8.17-1.el7.noarch.rpm以及安装步骤
Erlang程序设计(中文版-完整书签)&Erlang编程指南(中英文版)
erlang-xmerl-23.0.2-2.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。
erlang-20.3.8.17-1.el7.centos.x86_64
“即便我已经使用Erlang多年,在编程的时候仍然需要参考《Erlang编程指南》。不同层次的Erlang程序员都会发现本书是有价值的学习和参考资料..., 《Erlang编程指南》每章末尾都提供了练习题,并且由简单的示例贯穿全书。
https://blog.51cto.com/7794482/2436678 可根据文档进行部署,redis+mysql+mq的插件 rabbitmq 安装时需要该插件
erlang-21.3.8.15-1.el7.x86_64.rpm
erlang-21.3.7.1-1.el7.x86_64.rpm rabbitmq基础语言环境。
erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm
linux基于centos7.x,erlang21.3.8.16资源适配rabbitmq3.8.5。欢迎大家下载!!!!
erlang-23.2.6-1.el7.x86_64
● 软实时性- Erlang支持可编程的“软”实时系统,使用了递增式垃圾收集技术。 ● 热代码升级-Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新旧代码是共存的。 ●...
由于不同版本的rabbitmq需要的erlang版本不一样,但是官网已经无法下载,此版本的erlang适用于rabbitmq3.7.4-3.7.8,其余版本自查是否可用
erlang-erl_interface-19.3.6.4-1.el7.x86_64.rpm
erlang-19.3.6.4-1.el
配套rabbitmq-server-3.8.17-1.el8.noarch.rpm
erlang-21.3.8.11-1.el6.x86_64.rpm
erlang-xmerl-22.2.2-1.el7.x86_64.rpm 免费下载0积分镜像下载。rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和...