erlang的dict和maps模块】的更多相关文章

erlang在r17以后增加了map这个数据结构,在之前,类似map的需求用dict模块来实现,这里直接贴一下相关的操作 dict D = dict:new(). D1 = dict:store(k1,v1,D). dict:fetch(k1,D1). dict:find(k1,D1). D2 = dict:erase(k1,D1). 注:fetch在key不存在的时候,会crash,find会返回error,成功则返回{ok,v1} maps M = maps:new(). M1 = maps…
Erlang/OTP 17.0 has been released  http://www.erlang.org/download/otp_src_17.0.readme     Erlang/OTP 17.0发布了,不过Maps相关的设计还没有尘埃落定,目前:              With Maps you may for instance: -- M0 = #{ a => 1, b => 2}, % create associations -- M1 = M0#{ a := 10 }…
声明:本文讨论的Erlang Maps是基于17.0-rc2,时间2014-3-4.后续Maps可能会出现语法或函数API上的有所调整,特此说明. 前情提要: [Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1 继续昨天的话题,在Erlang Factory SF Bay Area 2013有一个议题:"Where are we on the Map?" [PDF ],这个Talk基本上就是选取了EEP43的要点,有兴趣的同学可以FQ观看视频 W…
声明:本文讨论的Erlang Maps是基于17.0-rc2,时间2014-3-4.兴许Maps可能会出现语法或函数API上的有所调整,特此说明. 前情提要: [Erlang 0116] 当我们谈论Erlang Maps时,我们谈论什么 Part 1 继续昨天的话题,在Erlang Factory SF Bay Area 2013有一个议题:"Where are we on the Map?" [PDF ],这个Talk基本上就是选取了EEP43的要点,有兴趣的同学能够FQ观看视频 W…
erlang本身提供一个接口,可以用来检查模块是否有导出函数,这个接口是erlang:function_exported/3,但是很多时候这个接口无法正常使用. 下面重现一下这个问题: 1> erlang:function_exported(crypto,start,0). false 2> crypto:start(). ok 3> erlang:function_exported(crypto,start,0). true 注意:例子中并不是说一定要crypto:start()才能使…
前几篇文章会写得比较基础,但是既然要写一系列的文章,还是得从基础开始写.我刚学Erlang碰到最大的问题是,想网上搜索下语法,结果却是寥寥无几,而且介绍得不是很系统,对我了解一些细节是有影响的,正好我身边有好多Erlang大神,遇到问题可以随时找他们请教,经过自己消化后,分享到这里,希望可以帮助到一些人.这几天偶尔逛一逛博客园,发现这里真是程序员的知识海洋,随便翻两页,就有很多大佬在编写Java并发.Docker镜像.K8S等技术文章,文章的质量我觉得都可以出书了.虽然我之前经常在CSDN,但是…
maps 适用于需要在运行时改变数据结构(record则不行)的场景,可以动态增加key 数据量不宜过大,具体多大没有实际数据, maps from_list  如果list表很长,则相应的耗时时间会很长,此时最好用lists模块. 由于map是动态结构,速度上必然无法匹敌record. 内存大小介于tuple与list之间 lists:sort([1,#{}, {}, []]). [1,{},#{},[]] Operations Records Maps Dict Immutable ✓ ✓…
OTP 22.0 Erlang/OTP 22是一个新的主要版本,具有新的特性和改进,同时也具有不兼容性. 要更深入地了解OTP 22发行版的亮点,您可以阅读我们的博客: http://blog.erlang.org/OTP-22-Highlights/ 潜在的不兼容 gen_*行为:如果通过sys:log/2,3记录服务器上的最后N条消息是活动的,则此日志包含在终止报告中. reltool:一个新元素Opts现在可以包含在reltool发行版特定配置格式的rel元组中:{rel, Name, V…
没有关于erlang interface ,继续寻找吧... --------------------------------------------------------------- erl -noshell -pa erlpath  -s hello(hello.beam) start(in hello.erl) 这个脚本需要使用绝对路径指向包含 hello.beam erlang shell #ls.sh#!/bin/bashls > sunexit 0 %%echo.erl-modu…
Erlang Resources 小站 2013年7月~12月资讯合集,方便检索.     附 2013上半年盘点: Erlang Resources 小站 2013年1月~6月资讯合集    小站地址: http://site.douban.com/204209/ 七月   Clojure in the Largehttp://www.infoq.com/presentations/Clojure-Large-scale-patterns-techniques mongodb / bson-e…
原文链接:http://www.gowhich.com/blog/147?utm_source=tuicool&utm_medium=referral PS:结巴分词支持Python3 源码下载的地址:https://github.com/fxsjy/jieba 演示地址:http://jiebademo.ap01.aws.af.cm/ 特点 1,支持三种分词模式: a,精确模式,试图将句子最精确地切开,适合文本分析:    b,全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是…
在使用json模块时需要先 import json 引入模块 json.dumps()模块函数 功能:将Python数据类型转换成字符串[有参] 使用方法:json.dumps(要转换的数据类型变量) 格式如:json.dumps(yhxxi) 注意:不支持元祖 #!/usr/bin/env python # -*- coding:utf8 -*- import json yhxxi = { #创建一个嵌套字典 1:{ "yonghu":"liguixiou", &…
本文含epmd简介及官方文档之翻译,文档地址 http://erlang.org/doc/man/epmd.html翻译时的版本 R19.1 中英文水平都不咋地,不通顺处海涵,就酱. 简介 Erlang分布式系统中节点是通过节点名字互相连接的,节点名字为NAME@IP_ADDRESS格式. epmd是分布式erlang中比较重要的模块.集群中每台机器都有一个epmd进程,这些进程端口号都用同一个端口号(默认4396端口).所有节点启动的时候都会连接到本机对应的epmd进程,它记录了本机所有相关的…
Erlang cowboy websocket 服务器 原文见于: http://marcelog.github.io/articles/erlang_websocket_server_cowboy_tutorial.html 本文不是原文的简单翻译,是参考原文,根据我的理解和实践写出来的.本文的源码见于: https://github.com/marcelog/erws 1 引言 Erlang可以用来实现一个websocket服务器.cowboy这样框架可以完成这个任务,使我们不必关注webs…
本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样.很多时候我们会有这样的需求: 把内存中的各种数据类型的数据通过网络传送给其它机器或客户端: 把内存中的各种数据类型的数据保存到本地磁盘持久化: 2.数据格式 如果要将一个系统内的数据通过网络传输给其它系统或客户端,我们通常都需要先把这些数据转化为字符串或字节串,而且需要规定一种统一…
面试的过程中经常被问到使用过那些python模块,然后我大脑就出现了一片空白各种模块一顿说,其实一点顺序也没有然后给面试官造成的印象就是自己是否真实的用到这些模块,所以总结下自己实际工作中常用的模块: 时间模块 time datatime 时间模块常用的方法 1.获取时间戳 import time time.time() 2.获取当前日期 from datetime import datetime datetime.now() 3.获取昨天.明天的日期(获取上个月和下个月同理) from dat…
最近看了下h5+规范的官网,开始觉得晦涩难懂,确实很乱,不过这也是基于我不理解的情况,终于艰难读完了,现在来分享下心得吧,基本看完文章,按我的方法,应该可以直接上手项目. 我准备的工具 hbuilder编译器(打包用),逍遥安卓模拟器(测试安卓用)一个html 搞定,开工,为了讲解的更易于新手,咱们从简单的一个底部弹出的按钮这个demo为例子,先看下效果图 如上就是效果图 ,就实现这个  可以吧,虽然简单,或许来说用个插件就实现了 没必要去碰h5+,但是这只是为了大家抱砖引玉用.重点不是教你实现…
列表 Erlang 中的列表是通过链表实现的,表示列表的 Eterm 就是这个链表的起点.列表 Eterm 中除去 2 位标签 01 之外,剩下的高 62 位表示指向列表中第一个元素的指针的高 62 位.我们在生成一个列表的时候,会采用这样的语法:L = [Head | Tail],Head 表示要添加到头部的单个元素,Tail 表示另一个列表.这种 Head 和 Tail 的组合称为一个 Cons 单元.在函数式语言里面,获得 Head 的操作称为 CAR,获得 Tail 的操作称为 CDR.…
本节内容 前言 json模块 pickle模块 shelve模块 总结 一.前言 1. 现实需求 每种编程语言都有各自的数据类型,其中面向对象的编程语言还允许开发者自定义数据类型(如:自定义类),Python也是一样.很多时候我们会有这样的需求: 把内存中的各种数据类型的数据通过网络传送给其它机器或客户端: 把内存中的各种数据类型的数据保存到本地磁盘持久化: 2.数据格式 如果要将一个系统内的数据通过网络传输给其它系统或客户端,我们通常都需要先把这些数据转化为字符串或字节串,而且需要规定一种统一…
erlang的DNS解析,有个inet模块,可以做这个事情,对应的api如下:(这里用的R16B的版本) inet:getaddr/2解析对应一个ip,而inet:getaddr/2解析有可能对应1个或多个映射的IP. 第一个参数为host域名,第二个参数是ipv4或ipv6. 如下图: 下面是按照IPv4的情况走的流程,在mochiweb中,在mochiweb_socket_server模块中有对IPV6做的判断,如下: ipv6_supported() -> case (catch inet…
http://wenku.baidu.com/link?url=or-8mkUYUM0uVeqCYESGe93YIlh2IDLP7lFOwRlwr8Syf3PeHbwJC5DPCErs4NFrb1p4I16eJuHIIFG_tR_jdYGoL5MsJX0YEjdeUmKjkTG 1.and or 和andalso orelse的区别 and和or会计算两边的表达式,而andalso和orelse的求值采用短路机制,比如exp1 andalso exp2,当exp1返回false之后,就不会去求值…
文章目录: 1. time & datetime模块 2. os模块 3. random模块 4. sys模块 5. hashlib模块 6. json模块 7. shutil模块 8. logging模块 9. paramiko模块 10. subprocess模块 11. ConfigParser模块 12. xml处理模块 13. shelve模块 1.time & datetime模块: #_*_coding:utf-8_*_ import time import datetime…
模块 模块与包 模块:用来从逻辑上组织python代码(可以定义变量.函数.类.逻辑:实现一个功能),本质就是.py结尾的python文件. 例如,文件名:test.py,对应的模块名为:test 包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py文件) 导入方法 import 语句 import moudle_name; # 导入模块 import moudle_name,moudle_name2...     # 导入多个模块 导入模块后,可以使用全限定名称访问…
# encoding: utf-8 # module builtins # from (built-in) # by generator 1.147 """ Built-in functions, exceptions, and other objects. Noteworthy: None is the `nil' object; Ellipsis represents `...' in slices. """ # no imports # V…
安装 MAC 平台用 brew 安装 brew update brew install elixir 如果没有 erlang 环境,上面的命令会自定安装 erlang 的环境. 基本数据类型 iex> 1 # integer iex> 0x1F # integer iex> 1.0 # float iex> true # boolean iex> :atom # atom / symbol iex> "elixir" # string iex>…
    XAF交流学习群内的兄弟录制了视频,他没有博客,委拖我发至博客园,希望能让更多的开发人员受益.快速开发企业级应用的好工具!   XAF入门01快速浏览   XAF入门02特点. XAF入门03状态控制  XAF入门04新建项目   XAF入门05图片.附件.聚集   XAF入门06权限定制     XAF入门 07 报表设计       XAF优缺点介绍 一.一次编码,多种平台同时使用 通过一次代码编码写,可以同时产生四种项目: 1,Web项目(b/s) 2,win项目(c/s) 3,平…
概要 有人常问,云巴实时通信系统到底提供了一种怎样的服务,与其他提供推送或 IM 服务的厂商有何本质区别.其实,从技术角度分析,云巴与其它同类厂商都是面向开发者的通信服务,宏观的编程模型都是大同小异,真正差异则聚焦于产品定位,业务模式,基础技术水平等诸多细节上.本文暂不讨论具体产品形态上的差异,着重从技术角度浅谈实时通信的编程模型. 什么是实时通信 「实时」(realtime) 一词在语义层面上隐含着对时间的约束(real-time constraint),在工程上,我们习惯对「需要在一定时间内…
第一到第七课在这里: http://www.cnblogs.com/foreachlife/p/xafvideo_1_6.html 视频地址:http://i.youku.com/i/UMTI5OTEzMDMwMA==/videos?spm=a2hzp.8244740.0.0 之前还是可以贴视频的,现在居然不行了. XAF入门08需求变更流程 XAF入门09按钮 XAF入门10发送邮件 XAF入门11完整模块 XAF入门12汇总查询 XAF入门13新模块 XAF入门14数据透视表数据准备 XAF…
我是一名.Net开发者,从DOS时代Turbo c 算起(1996年),马上满20年了.想想写过的代码真是不少,却做了很多重复反复的编码工作.当然中间也带过团队做过几个大项目,但是代码仍没写够,还是每天在敲着代码,真心是喜欢这个别人眼中这件无聊的事情吧. 可能我的视野不够开阔,自从2002年从asp开始加入M$阵营,后来转向.net开发一直没有变化过,而且一直在做企业信息系统开发,做这行的,大家都知道是工作繁重修改反复. 不管是需求变化,还是老板有新点子,我们就得加班加点,理由总不需要那么多,只…
原文  http://www.gowhich.com/blog/147 主题 中文分词Python 源码下载的地址:https://github.com/fxsjy/jieba 演示地址:http://jiebademo.ap01.aws.af.cm/ 特点 1,支持三种分词模式: a,精确模式,试图将句子最精确地切开,适合文本分析:     b,全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义:     c,搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召…