erlang学习笔记
文章平均质量分 52
fairjm
coding for fun
展开
-
erlang简单实现生产者消费者
-module(procedure).-export([procedure/2,consume/0]).consume() -> receive X -> case X<10 of true ->io:format("production consume ~w~n",[X]),consume(); false ->io...原创 2013-06-25 19:28:04 · 169 阅读 · 0 评论 -
[笔记]erlang ets笔记
额 电子书是买了 然后再买了本erlang程序设计 再看ets和dets那部分 就权当做个笔记啦.... erlang程序设计 写道ETS和DETS基本上是在做同一件事:它们提供大型的“键—值”搜索表。所不同的是,ETS驻留在内存,而DETS驻留在磁盘。 表的类型有四个 分别是:set、ordered set、bag和duplicate bagset系列两个 set是...2013-07-13 00:52:44 · 159 阅读 · 0 评论 -
[笔记]erlang gen_event使用
gen_event行为模式规定了怎么处理日志事件该行为模式和gen_server不同 一个gen_server的实现只能绑定一个回调模块而gen_event则可以回调多个模块 这个和在java中注册成为一个事件的监听者道理是一样的一个日志事件(event)会分发给多个注册了的处理者(handler,gen_event行为模式的实现模块) gen_event由start_lin...2013-07-14 11:19:05 · 496 阅读 · 0 评论 -
[练习]erlang算法练习--KMP
生活有点无聊,就用erlang写写一些算法吧.闲着也闲着 首先是KMP 介绍:http://zh.wikipedia.org/wiki/%E5%85%8B%E5%8A%AA%E6%96%AF-%E8%8E%AB%E9%87%8C%E6%96%AF-%E6%99%AE%E6%8B%89%E7%89%B9%E7%AE%97%E6%B3%95 关于字符串匹配的 原理蛮简单的:...2013-07-30 17:57:53 · 235 阅读 · 0 评论 -
[练习]简单的名字服务
使用gen_server做的简单的名字服务 步奏很简单 启动gen_server local注册一下服务名方便被引用 然后将字典放在State里面 提供查询等服务 代码如下:%% @author cc fairjm%% @doc @todo Add description to naming.-module(naming).-behaviour(g...2013-08-12 02:29:50 · 153 阅读 · 0 评论 -
[练习]erlang 生成文本内单词索引
不知道标题这么取是否恰当就是生成单词内的索引看《改变未来的九大算法》(是本民科 清晰易懂)的第二章 仿照里面的索引 如下: 文本里内容和图中也是一样的先把结果打出来 因为我很懒 就不对dict做解析了 直接返回的就是个dict 结果如下:29> filereader:read("G:\erl_workbench\pattern", "*.txt").File nam...2013-08-23 16:23:35 · 181 阅读 · 0 评论 -
[练习]erlang算法练习--dijstra
dijistra是一种贪心算法 用来求无向图两点间的最短距离具体的内容我不多说了..这边写的代码没有经过太多的验证 用了一个简单的例子做 所以也许还会有些地方有些问题用的例子是blog.csdn.net/v_july_v/article/details/6096981内的 图和具体步骤如下: 具体代码如下:%% @author cc fairjm%% @...2013-09-15 23:21:52 · 375 阅读 · 0 评论 -
[练习]erlang实现生产者与消费者
原来写过一个....我都忘记了..http://fair-jm.iteye.com/blog/1894288以上这个不对啊..看了下和所谓的生产者消费者差的远了..什么玩意儿(╯‵□′)╯︵┴─┴ ..%% @author cc fairjm%% @doc @todo Add description to Producer_Consumer.-module(p...2013-10-12 16:25:26 · 177 阅读 · 0 评论 -
[转]Erlang的random:uniform()函数
转载请注明,来自:http://blog.csdn.net/skyman_2001看它的代码实现:uniform() -> {A1, A2, A3} = case get(random_seed) of undefined -> seed0(); Tuple -> Tuple end, B1 = (A1...原创 2013-10-28 00:13:23 · 270 阅读 · 0 评论 -
[转]Erlang匿名函数的递归
来自:http://zfsgeek.blog.163.com/blog/static/20400908020121012104457436/ 使用或者返回一个匿名函数的函数被称为高阶函数(Higer-order function)。普通的函数,它们递归是容易编写的,因为它们有个名字,你引用这个名字就可以了,而匿名函数没有名字,如何编写递归呢? 例子:下面是一个计算一个l...原创 2013-10-28 22:58:42 · 243 阅读 · 0 评论 -
[笔记]erlang集群常识(其实只是关于node的基本知识)
读书笔记 读书笔记 依旧是那本erlang/OTP并发编程实战 买了纸质书懊悔不已 已打算再买图灵的电子版了...哎~~ 在本机上建立一个node网络 和好几台计算机分别建一个node然后连接差不多是一样的 1.建立节点要建立节点是很简单的(以下的实验都是在win下做得):分别在三个cmd下输入erl -sname aerl -sname berl -snam...2013-07-10 22:35:13 · 859 阅读 · 0 评论 -
[代码分析]simple_cache示例代码分析
这些文章可以算是读书笔记了..写在这记录一下记录:程序的源代码在 https://github.com/erlware/Erlang-and-OTP-in-Action-Source/tree/master/chapter_06编译程序在window下出错的(elrc -o ebin src/*.erl 显示src/*.erl:none: I/O error)的 可以用以下命令:...2013-07-08 22:16:04 · 155 阅读 · 0 评论 -
[笔记]erlang中的列表
开始慢慢erlang的学习了,文中所说也许有误,欢迎指正。 string就是list在erlang中 string是用list表示的 先开始让我一头雾水。在erlang shell中:3> [97,98,99]."abc"4> 得到了这样的结果 编译器试图把转换为string的list都进行了转换同样的事情在erlang模块的函数中也可以看见...原创 2013-06-29 14:57:30 · 223 阅读 · 0 评论 -
[笔记]erlang的异常处理
erlang的异常处理没有什么太大的特别的异常分为:errorthrowexit(一般正常退出也用这个)原来的做法是用catch:1> catch 0.02> catch throw(0).03> catch a=b.{'EXIT',{{badmatch,b},[{erl_eval,expr,3,[]}]}}4> cat...原创 2013-06-29 16:50:04 · 392 阅读 · 0 评论 -
[笔记]erlang正则使用
erlang的re包是兼容Perl(没学过...)的正则表达式的。里面的函数也是对于正则的处理。 lz水平有限 doc又不是很看得懂 先写一点 以后再补充吧..可以用compile这个函数来返回特定的内部使用的正则表达式:20> {ok,MP}=re:compile("abc",[caseless]).{ok,{re_pattern,0,0, ...2013-07-02 16:13:50 · 216 阅读 · 0 评论 -
[笔记]erlang文件操作
erlang关于文件操作的模块还是很多的stdlib下有filelib filename和file_sorter 核心模块有file 当然io的一些导出函数也可以用来对文件进行读写 这里简要记下笔记 首先是filelib9> ls().doc factorial.beam factorial.erlfibo....2013-07-03 12:27:11 · 280 阅读 · 0 评论 -
[练习]erlang编程练习1
这边就写点小代码,不求写得很精准能用就好了(跪.... 统计文件数量:%%%===============================%%% @author cc%%% @description%%% 查找并统计对应后缀的文件%%% @end%%%===============================-module(seek_file)....2013-07-03 23:11:51 · 166 阅读 · 0 评论 -
[练习]erlang编程练习2:apply使用
一个蛮简单的程序 输入一串字符串(list)然后执行:-module(list_apply).-export([apply/1]).apply(Str) -> re_run(Str). re_run(Str) -> Res=re:run(Str,"\\s*(.*)\\s*:\\s*(.*)\\((.*)\\)\\.",[{capture,[1,2...2013-07-04 14:18:36 · 561 阅读 · 0 评论 -
[代码分析]gen_server例子分析
这个例子是erlang/OTP并发实践里的 例子内容很简单 但是对行为不是很理解的人(比如我)读起来还是有那么一点点困难的 源代码:https://raw.github.com/erlware/Erlang-and-OTP-in-Action-Source/master/chapter_03/tr_server.erl 这边简化一下do_rpc()那个函数其实就...2013-07-05 16:12:41 · 178 阅读 · 0 评论 -
[练习]erlang编程练习3:echo程序实现
这段程序一些地方参考:写道http://www.erlang.org/upload/klacke_examples/chargen.erl依旧是erlang官网的一个example 自己独立写的时候 做了一个同步的版本 接下去改成异步改成异步的时候没有把gen_tcp:listener那段独立到循环的进程中去调用函数那段就运行完了(那么tcp的端口就相当于直接关闭了)...2013-07-06 18:45:46 · 116 阅读 · 0 评论 -
[笔记]erlang程序的文件结构
还是erlang/OTP并发实战上的例子~这本书图灵出电子书了:http://www.ituring.com.cn/book/828 是本不错的书 蛮好的~ 好了 例子的源代码:https://github.com/erlware/Erlang-and-OTP-in-Action-Source/tree/master/chapter_06 文件的结构也不是很复杂,看起来一...原创 2013-07-08 00:09:00 · 278 阅读 · 0 评论 -
Elixir简单的wordcount小程序
本文来自:fair-jm.iteye.com 转截请注明出处 defmodule Wordcount do @moduledoc "simple wordcount program by fairjm" @nodecount 3 def start(file) do s = self spawn(fn -> count(fil...2014-11-18 00:22:03 · 222 阅读 · 0 评论