<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>漫天风 &#187; quick start</title>
	<atom:link href="http://blog.thinklet.net/mantian/tag/quick-start/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thinklet.net/mantian</link>
	<description>把细小的事情做到极致</description>
	<lastBuildDate>Mon, 18 Jan 2010 16:28:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>迎接 Erlang盛宴</title>
		<link>http://blog.thinklet.net/mantian/2008/12/19/%e8%bf%8e%e6%8e%a5-erlang%e7%9b%9b%e5%ae%b4/</link>
		<comments>http://blog.thinklet.net/mantian/2008/12/19/%e8%bf%8e%e6%8e%a5-erlang%e7%9b%9b%e5%ae%b4/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 07:28:06 +0000</pubDate>
		<dc:creator>mantian</dc:creator>
				<category><![CDATA[Erlang]]></category>
		<category><![CDATA[quick start]]></category>

		<guid isPermaLink="false">http://blog.thinklet.net/mantian/?p=3</guid>
		<description><![CDATA[1、Erlang是什么；
Erlang是什么是我们最先要面对的问题，只有清楚了它是什么，我们才能做出我们的决定。可见这个问题的重要性，它决定了很多读者是否会继续看下去！非常紧张。
Erlang最初是爱立信为开发电信相关产品而产生。
Erlang是一种面向并发 (Concurrency Oriented)，面向消息（ Message Oriented）的函数式 (Functional)编程语言。
面向并发说明 Erlang支持大规模的并发应用，我们可以在应用中处理成千上万的并发，而不相互影响。面向消息，其实是为并发服务！我们应该都熟悉多线程，熟悉加锁解锁操作，熟悉可能出现的资源竞争与死锁。在 Erlang的世界里，我们可以将轻轻的抹去这些令人苦恼的词汇。 Erlang的世界，每个处理都是独立的个体，他们之间的交互仅仅靠消息！因此不会有死锁，不会有那种痛苦的编程经历。
Erlang中一个非常重要的名词： Process，也就是我们前面提到的“个体”。它不是我们操作系统中的进程，也不是线程。它是 Erlang提供给我们的超级轻量的进程。为了适应大规模并发的特性， Process需要能够快速创建，快速销毁。之间通信的唯一方法就是消息，我们只要知道一个 Process的名字即 pid，就可以向其发送消息。 Process也可以在任何时候，接收消息。我们这样做只有一个目的：让我们的系统更加简单，用一种朴素的做法，实现一个高效的语言。 Process
Erlang是种函数式编程语言，对此我没有很深刻的理解，最明显的特征就是， Erlang中到处都是函数，函数构成了我们的产品的主体，把这些函数放到一个个的 Process中去，让他们运行起来，那么就组成了我们朝气蓬勃的产品。
Erlang支持对数据的位操作，拥有丰富的数据持久化机制。
同时需要说明的是 Erlang内建垃圾回收机制（ GC）。
2、 Erlang的语言特性
1.简单小巧
Erlang中只有 8种基本的数据类型：
integer、 float、 atom、 reference、 fun、 port、 pid、 bitstring
同时提供 2种复合结构： tuple， list，这就是 Erlang的所有数据类型。
2.模式匹配
在 Erlang的函数中，某些语法中，我们可以使用 Pattern匹配，这是一个非常好的特性，我们可以让代码自己去决定如何执行 ：
比如，我们定义一个函数，其告诉我们某种水果的价格 :
price(apple) -&#62; 2.0;
price(banana) -&#62; 1.2.
我们随后调用 price(Fruit)，会根据 Fruit变量的内容返回具体的价格。这样做的好处就是节省了我们的代码量，我们不用 if&#8230;else…或者 switch…case的来伺候了。也便于代码的扩展：加一个新的水果品种，我们只需要加一行就可以了。
学习 Erlang一个非常重要的内容就是模式匹配，但是请不要混淆，这个匹配和正则表达式没有任何干系。
3.变量单次赋值
这个是一个匪夷所思的特性，变量竟然只能单次赋值！是的 Erlang中变量一旦绑定某个数值以后，就不能再次绑定，这样做的好处是便于调试出错（更深层次的原因是 Erlang为并发设计，如果变量可以修改，那么就涉及到资源的加锁解锁等问题），当发生错误时，某个变量是什么就永远是什么，不用顺藤摸瓜的查找谁修改过它，省了好多事情。唯一的麻烦就是需要一个信的变量时，你必须再为它想一个名字。
4.丰富的 libs
Erlang中提供丰富的 libs
stdlib中包含大量的数据结构如 lists， array， dict， gb_sets， gb_trees， [...]]]></description>
		<wfw:commentRss>http://blog.thinklet.net/mantian/2008/12/19/%e8%bf%8e%e6%8e%a5-erlang%e7%9b%9b%e5%ae%b4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<a style="display: none;" href="http://mcinside.com/">MC Inside</a>