Home 博客

知力企业博客

上善若水 厚德载物

Erlang知识-变量及数据类型

Posted by: bin in erlang on

公司里有项目要用到Erlang,关于Erlang的介绍,这里先简单交代一下

Erlang是一个丹麦的数学家,他搞出来的一个概率分布Erlan分布,并且用这个分布开创一们学科排队理论,电信上经常用这个分布来测算话务量,因此在电信界比较有名.当年Joe Amstrong把他的语言命名为Erlang也是为了纪念这个为电信领域作出过卓越贡献的人.
   Erlang是Ericsson和Ellemtel Computer ScientceLaboratories为解决电信领域中的并发和分布式问题,设计的语言;从理论应用于实践的角度讲,主要探索的是函数式语言能否应用到通信领域的大型交换机上,从Erlang的实践效果来看,答案是肯定的。
    Erlang的优点:
    (1) Code Loading Primitives允许在系统运行过程中升级代码。
    (2) Erlang的轻量级进程可以支持极高的并发性,而且在高并发的情况下内存使用相当的少。Erlang的并发性并不会受到宿主操作系统并发性的限制。Erlang的原子操
作是一个压栈级别的,而C语言是指令级别的。
   (3)最开始Erlang的设计目标就是实现分布式环境,一个Erlang的虚拟机就是一个Erlang网络上的节点。一个Erlang节点可以在另一个-Erlang节点上创建自己的并发进程,而子进程所在的节点可能是运行其他的操作系统的服务器。不同节点的之间的可以进行极为高效而又精确的通信,就像它们运行-在同一个节点一样。
    (4)Erlang内部建设有多种错误检测原语。我们可以通过这些原语来架设高容错性的系统。例如,一个进程可以监视其他进程的状态和活动,即使那些被监 -控的进程处于其他节点。在分布式状态下,我们可以把系统配置成具有Fail-over功能的分布式系统。当有其他节点出错的时候,系统会把他的运行场景自动快速-的切换备份节点上。
    (5) Erlang是一个"软"实时系统(Soft Real Time),它可以提供毫秒级别的响应。

变量
所有的变量都必须以大写字母开头。
X = 12832.
如果再执行 X=1244.则报错了。
注意:在Erlang中,X不是一个变量,至少不是你在Java或C中的那种变量。
另外,=不是赋值操作符。而模式匹配,变量只能被赋值一次。当我们第一次输入X=12832时,Erlang会问自己,"要怎么做才能让这样语句的值变是true?"(注:erlang的每一个语句都会有值),由于X没有被赋值,因此可以把12832绑定到X上。同时也使得语句有效。


浮点数
1> 5/3.
1.66667
2> 4/2.
2.00000
3> 5 div 3.
1
"/"永远返回浮点数。

原子
用来表示不同的非数字常量值。类似于java/c中的枚举类型。原子是一串以小写字母开头、后跟数字、字母或下划线(_)或邮件符号(@)的字符。而且原子是全局有效的,而且无需使用宏定义或者包含文件。
比如,red、december、a_login_name
使用单引号引起来的字符也是原子,一个原子的值就是原子自身。比如,'a'就等同于a

元组
将一定数量的项目组成单一的实体,那么就可以使用元组(tuple)。将若干个以逗号分割的值用一对花括号括起来,就形成了一个元组。如{ supercode, 1.75}.这个元组就包括了一个原子和一个浮点数。 元组类似于C语言中的结构。

  • 创建元组
    在声明元组时,就自动创建了元组,不需要时,元组也自动销毁。因为erlang有垃圾回收。

2> F = {firstName, joe}.
{firstName,joe}
3> L = {lastName, armstrong}.
{lastName,armstrong}
4> P = {person, F, L}.
{person,{firstName,joe},{lastName,armstrong}}


  • 从元组中提取字段值
    1> Point = {point, 10, 45}.
    {point, 10, 45}.
    2> {point, X, Y} = Point. 
    {point,10,45}
    3> X.
    10
    4> Y.
    45

注意
{my,X,Y}=Point, 将出错,因为my与point不匹配,如果{Mypoint,X,Y}=Point. 那么是正确的.

列表
列表用来存储数目可变的东西,如在商店里买到的商品。将若干个以逗号分割的值用一对方括号括起来,就形成了一个列表。
1> ThingsToBuy = [{apples,10},{pears,6},{milk,3}].
[{apples,10},{pears,6},{milk,3}]

列表之中的各个元素可以有各自不同的类型。
2> [1+7,hello,2-2,{cost, apple, 30-20},3].
[8,hello,0,{cost,apple,10},3]

列表的第一个元素称为列表的头(head),除去头,剩下的东西称为列表的尾。注意,列表的头可以是任意东西,但列表的尾通常还是一个列表。

3> ThingsToBuy1 = [{oranges,4},{newspaper,1}|ThingsToBuy].
[{oranges,4},{newspaper,1},{apples,10},{pears,6},{milk,3}]

4> [Buy1|ThingsToBuy2] = ThingsToBuy1.
[{oranges,4},{newspaper,1},{apples,10},{pears,6},{milk,3}]
绑定结果如下
Buy1 7→ {oranges,4}


字符串
严格地讲,Erlang中并没有字符串,字符串实际上也就是一个整数列表。
1> Name = "Hello".
"Hello"

可以用$符号来表示字符中整数值。
5> I = $s.
115
6> [I-32,$u,$r,$p,$r,$i,$s,$e].
"Surprise"


沉默:人际关系的无声“武器”

Posted by: Elva in Untagged  on

        在与下属进行沟通时,适当地使用"沉默"和"幽默"这两个杀手锏,不仅能帮你解决棘手的问题,而且还可以让你的沟通能力锦上添花。

  该沉默时要沉默。人们常说:沉默是金,开口是银。一句简简单单的话却道出了人际交往中的一条重要规律。身为一名管理者,在与下属交流时你常常得多开口,但是你有没有想过,你的过于"健谈"已经引起了下属的不满呢?不要以为一位面面俱到的管理者,就是一位无微不至的好管理者,你的唠唠叨叨、啰啰嗦嗦会使你周围的人把握不住你说话的要点。年轻的下属会觉得你婆婆妈妈,不够爽快利落;年老的下属会认为你不尊重他们,否定了他们的办事能力。久而久之,你便会成为他们厌烦的对象和不愿接近的人。其实,适当的沉默才是你处理与下属关系的智慧宝石,巧妙地运用它,你将会得到意想不到的收获。

  言简意赅地传达你对下属们的要求和期望,如有必要,再把注意事项交待清楚即可,然后你就可以保持沉默,留一个宁静的"空间"给你的下属们好好考虑具体的步骤。当他们的想法不够准确圆满时,你才可以适当地给予补充,给一次适时的指导,但千万不要剥夺你的下属发言与思考的机会。

  在你批评员工时,适当的沉默可以起到"此时无声胜有声"的效果。通常来讲,当你批评下属时,他的情绪波动是很大的。"你呀你,你看你怎么搞的,我不是早就告诉你了吗?你还......"每个人都有自尊心,成年后更是觉得面子是很重要的。也许你只是想苦口婆心地劝导他一番,并无他意。但是你无形中却伤了下属们的自尊心,让他们觉得颜面挂不住,产生了索性"破罐子破摔"的心理,那你的批评岂不是得不偿失?若是你在适度的批评之后保持沉默,相信这更是一种对当事人的威慑。一方面,下属会因为你的"点到而止"感谢你为他们保留了颜面,另一方面也显示出了你宽广的胸怀。你的沉默并非是对错误的迁就,而是留给了对方一个自省的余地。

  当员工之间发生争执时,适当的沉默可以是你的缓兵之计。争执的双方为了寻求一个说法,也许会将你--他们心目中的权威者拉入其中,让你做个公断。在没有经过深思熟虑之前,你绝不可以表明自己的立场--即便你已经知道了谁对谁错,在双方还面红耳赤地争执,谁都不愿意让步时,你的公断根本不会达到预期的效果,只会使一方的自尊心受挫,认为你是有意偏袒。此时,适当的沉默才是你最好的选择。待到双方头脑冷静后,你再公正地做出评价,其效果必定会事半功倍。

  沉默让小报告自生自灭。搬弄是非的人似乎在哪里都能找到生存的环境。当你的组织中也存在着一小撮喜欢打"小报告"的人时,对待他们最好的办法就是保持沉默。沉默并不是对搬弄是非者的纵容,而是在一定程度上制止了是非的蔓延。试想,如果你对那些临时"人事秘书"们的小道消息表示出了兴趣,他们一定会更加肆无忌惮,必定会闹得满城风雨,到时,你良好的人际关系会被搅得一塌糊涂。而若是你选择了沉默,他们必定会索然无味地从你身边走开,小道消息也就失去了传播的源头。

  试一试吧,适当沉默是你处理人际关系的无声"武器",它会让你在与下属的沟通中畅通无阻。

  在幽默中成功沟通。幽默不仅能给我们的生活带来笑声,带来欢乐,而且能使我们拓宽人际关系,增长才干,在人生的历程中获得成功。美国心理学家赫德·特鲁写过一本名为《幽默就是力量》的书。他认为,幽默是运用你的幽默感来改善你与别人的关系的一种艺术。

  冬天让人觉得畏惧,因此人们总希望冬天尽快结束。春天让人充满喜悦,因此人们便希望春天常在。这给我们带来了很大的启示。管理者如果一味注重容貌的恭敬和严肃,就会显得缺乏趣味和情趣,不免会使下属生出敬而远之的心理反应。这是因为大多数人都希望通过交往从他人那里得到欢乐,所以就应该顺应下属的心理,使他觉得快乐而无丝毫的负担。

  在日常的生活中,如果你能不时地与下属们开个玩笑,幽他一默,你的下属必然会觉得你很随和,从而愿意接近你。这样你才能真正了解他们,与他们更好地进行沟通,这对于你的工作来说是极其重要的。

  卡普尔担任美国电话公共部门的最高行政主管之时,有一次主持股东会议,与会者情绪非常激昂,会议中的紧张气氛随着大家对卡普尔的质问、批评和抱怨而升高。其中有一女股东不断质问部门在慈善事业方面的捐赠,她认为应该多些。

  "部门在去年一年中,用于慈善方面有多少钱?"她带着挑战性问道。当卡普尔说出有几百万元时,她说:"我想我快要晕倒了。"

  卡普尔面不改色地说:"真那样倒是好些。"

  于是,随着会场中大多数股东的笑声--包括他的挑战者自己,紧张的气氛轻松了下来。

  卡普尔将看起来似乎有些敌意的质问转变为幽默力量,化解了紧张的一刻,解除了大家焦虑的心情。他的幽默表达了重要的信息:"这个部门重视人性的需要。我们的确关心,并且分享彼此的关心。"

  在工作中,我们时常可以看到,有的管理者幽默,做报告时饶有风趣,群众和下属们都爱听;做思想工作时,语言生动,容易入耳入心,群众和下属都乐于接受;平时和下属接触,大家觉得他可亲可爱,都愿意和他接近。这样的管理者,必然会赢得群众的尊重和爱戴,人际关系也会协调得好,在工作中会收到事半功倍的效果。(来源:网络)


Nodepad++的美中不足

Posted by: bin in Untagged  on

      一直在用Notepad++,做为一款开源而免费的文本编辑器,它还是不错的,我偶尔用它快速查看一些文件,比如html,php,python,ruby,txt等等.我的机子上装了MyEclipse,VS2008,NetBeans,Aptana,所以开发是不会用Notepad++的,用它主要是快速,不想用这些超重的IDE拖我的笔记本,虽然有3G的内存.不过这两天用NotePad++,发现有个不太如意的地方.当打开多个文件时,注意是同时打开50个文件以上,而且涉及到查找,替换等.偶尔会没有响应,要比较内容太多了.UltraEditb也是如此,查找时窗口刷的厉害,默认的情况,语言的高亮支持没有nodepad++多, 另外,打开这么多的文件,在找文件时,比较麻烦,因为它的选择窗口,连首字母定位的功能都没有,不过这个功能UltraEdit倒是有的. 另外一直看到国外的ruby开发人员一直用TextMate,不过windows上没有这东东.不过有E - TextEditor号称是The power of TextMate on Windows.当然其他的编辑器还有Emacs,Vim,TextPad这些也都非常有名.后面这几款对键盘的掌握度要高些,而如果鼠标做大多数人的选择,面向的对象群体也相对少了,不过掌握后,效率也更高.




友情链接: 上海市企业信息化促进中心 国家工业和信息化部 中国信息安全评测认证中心 中国教育网 多特软件站 天空软件站 华军软件园 上海西楚礼仪