Erlang
木叶之窗
这个作者很懒,什么都没留下…
展开
-
erlang catch时间分析
下面的测试,构造了一个1000W长度的列表,用于进行循环测试主函数体为:test(Lv, Star) -> CheckList = [{lv, Lv}, {star, Star}], List = lists:seq(1, 10000000), StarTime = erlang:system_time(milli_seconds), [case check_list(CheckList) of true -> true;原创 2020-11-18 17:58:17 · 326 阅读 · 0 评论 -
Erlang 修改shell节点后缀
在同一个机器的两个节点上运行名字服务时:首先,我们打开一个终端shell,然后在终端上启动一个名为gandalf的erlang节点,$ erl -sname gandalf(gandalf@localhost) 1> kvs:start().true注意:在Window中显示的节点名后缀并不一定是localhost.我的返回的就不是localhost,而是CHINA-9B4EB5FC6,然后调用rpc:call/4时一直报错,因为CHINA-9B4EB5FC6不符合erlang的命名规范。转载 2020-05-11 14:05:49 · 216 阅读 · 0 评论 -
Erlang Mnesia数据库模块
mnesia:create_schema/1在指定的节点列表里初始化一个新的 Mnesia 数据库架构用法: 1 create_schema(DiscNodes) -> ok | {error,Reason} 在指定的节点列表里的磁盘上初始创建一个新的 Mnesia 数据库架构。在每个节点的本地 Mnesia 目录里会创建各种各样的文件。注意该每个节点的目录必须是唯一的。两个节点可能永远不会共享相同的目录。如果可能的话,使用一个本地磁盘设备来提高性能原创 2020-05-09 11:56:19 · 372 阅读 · 0 评论 -
Erlang 一些好的博主
https://www.iteye.com/blog/wudixiaotie-2237009原创 2020-05-08 19:48:02 · 199 阅读 · 0 评论 -
Erlang lists模块使用
lists:keystore/4在元组列表里存储一个值用法:keystore(Key, N, TupleList1, NewTuple) -> TupleList2从元组列表 TupleList1 里查找元组的第 N 个值跟 Key 是一样的元素,如果找到则用新元组替换,并返回一个新的元组列表 TupleList1,找不到则在原来的元组列表 TupleList1 后面加上新...原创 2020-05-08 17:19:01 · 889 阅读 · 0 评论 -
Erlang编程IRC程序学习
% 输入输出窗口-module(io_widget).-export([get_state/1, start/1, test/0, set_handler/2, set_prompt/2, set_state/2, set_title/2, insert_str/2, update_state/3]).start(Pid) ->...原创 2020-05-08 11:21:57 · 250 阅读 · 0 评论 -
erlang中下划线的使用
在erlang里'_',它可以代替任何东西,在match的时候非常有用,例如{A, _, [B|_], {B}} = {abc, 23, [22, 23], {22}} 这样,就是把_当作一个占位符,表示,match的时候这里有一个值,但是我不关心他是什么在erlang里,使用下划线'_'开头是有特殊含义的,告诉编译器,这些变量是被忽略的,声明了没有使用/绑定也没关系(否则,默认情...原创 2020-05-05 16:41:30 · 393 阅读 · 0 评论 -
Erlang中的record与宏
记录:在Erlang中使用Tuple ,数据项的顺序\数量都是确定的,一旦数据项顺序调整或者增减字段,都容易出现badmatch.同时一些常量如果硬编码到代码中,一旦数值变化,要想全部可靠的替换成新的数值是一个困难的事情.这两种数据层面的变化,在Erlang中对应的解决方案是: record Macro一. record 记录的定义如下:-record(name_of_rec...原创 2020-05-05 14:54:45 · 475 阅读 · 0 评论 -
Erlang dict模块使用
erlang 的dict模块比较完整的实现了一个键值(Key -Value)字典。通过这个模块,你可以插入,附加(append),删除,更新键值对字典,也提供了获取字典大小和检查键是否存在等调用接口,而且还包含一些对字典键或值进行操作的函数方法,例如:递归(fold)、过滤(filter)、遍历(map)字典等特殊操作函数。dict: new() -> dictionary()...原创 2020-05-04 20:37:35 · 284 阅读 · 0 评论 -
进程架构
不管特定目的是什么,进程行为有一个共同的模式。必须生成进程并以它们的别名注册。新生成进程的第一个动作是初始化进程循环数据。循环数据通常是传递给内置函数spawn的参数和进程初始化的结果。它存储在一个我们称之为进程状态(process state)的变量中。把这个状态传递给接收求值函数,它收到一条消息,处理它和更新状态,然后作为尾递归调用的一个参数返回。如果它处理的消息之一是stop消息,接收进程就...原创 2020-04-29 11:13:08 · 320 阅读 · 0 评论