หลังจากรู้ข้อดีของ Erlang ดังนั้นจึงได้ถูกนำไปใช้ในโปรเจคต่างๆ ทั้งอุปกรณ์และ Open Source เช่น ATM Switch และ CouchDB
ภาษา Erlang ถูกคิดค้นโดย Ericson และเขานำโค๊ดไปใช้ในบริษัทของเขาเอง กว่า 1 แสนบรรทัดและเขียนโค๊ดร่วมกันภาษา C++ อีกด้วย
การใช้งาน Erlang ใน Windows
สำหรับการใช้งานใน Windows คำสั่งจะเหมือนกับในระบบปัฏบัติการยูนิกส์ สามารถเข้าไปโหลด OTP R16B03-1 สำหรับ Windows ได้ที่ลิ้งค์ http://www.erlang.org/download.htmlThe Erlang Shell
ต่อไปเราจะเปิด Erlang Shell ขึ้นมาใช้งาน พิมพ์คำสั่ง >erl ใน Command การพิมพ์คำสั่งแต่ละครั้งต้องลงท้ายด้วย . เสมอ
Erlang Atom
อะตอมคือส่วนที่เป็น String แต่ไม่ใช่ Integer เช่น {123,abc} ประกอบด้วย 2 ส่วนที่เป็นอะตอมคือ abc การประกาศอะตอมจะขึ้นต้นด้วยตัวพิมพ์เล็กแล้วตามด้วย _ เช่น red, person, me@hotmail นอกจากนี้อะตอมยังถูกครอบด้วยเครื่องหมาย ' ได้อีกด้วย สำหรับอะตอมตัวอักษรหรืออักขระพิเศษ
Erlang Tuples
Tuple คือกลุ่มของข้อมูล erlang ที่แตกต่างกันประกอบกันอยู่ในรูปแบบของคอนเลคชั่น และแต่ละอยู่ในเครื่องหมายปีกา แต่ละ Tubple ถูกแบ่งด้วยเครื่องหมายลูกน้ำ (,) ซึ่งจะอยู่ในรูปบบ ,{...} , ยกตัวอย่างเช่น {abc,123} ส่วนอะตอมที่เป็นตัวแรกของ Tuple เป็นข้อตกลงของ Erlang ที่เราควรรู้ไว้ ซึ่งจะเรียกว่า (TAG) โดยเอาไว้เพื่อบอกประเภทของข้อมูลเช่น {person,'pick'} อะตอม person คือประเภทของบุคคล และอะตอม pick คือข้อมูล
การใช้แทกถือเป็นข้อปฏิบัติที่ดีในการเขียนโปรแกรมด้วยเอิร์ลแลงนอกจากนี้ทัปเปิลยังมีฟังก์ชั่นแบบบิวด์อินมาให้ใช้งานอีกด้วยเช่น
1> tuple_size({abc, {def, 123}, ghi}).
3
2> element(2,{abc, {def, 123}, ghi}).
{def,123}
3> setelement(2,{abc, {def, 123}, ghi},def).
{abc,def,ghi}
4> {1,2}<{1,3}.
true
5> {2,3}<{2,3}.
false
6> {1,2}=={2,3}.
false
1> tuple_size({abc, {def, 123}, ghi}).
3
2> element(2,{abc, {def, 123}, ghi}).
{def,123}
3> setelement(2,{abc, {def, 123}, ghi},def).
{abc,def,ghi}
4> {1,2}<{1,3}.
true
5> {2,3}<{2,3}.
false
6> {1,2}=={2,3}.
false
Erlang Lists
ลิสท์ในเอิร์ลแลงเป็นที่สำหรับเก็บชุดของอิลิเมนท์คล้ายๆกับทัปเปิลแต่กระบวนการทำงานกับลิสท์นั้นแตกต่างจากทัปเปิลมากๆ ก่อนอื่นเรามาเริ่มจากวิธีการสร้างลิสท์ก่อน โดยเราสามารถสร้างลิสท์ได้โดยการใช้เครื่องหมาย [...] และแต่ละอิลิเมนท์จะถูกคั่นด้วยเครื่องหมายลูกน้ำ , โดยที่อิลิเมนท์ในลิสท์ม่จำเป็นจะต้องเหมือนกัน เช่น
[january, february, march]
[123, def, abc]
[a,[b,[c,d,e],f], g]
[]
[{person, 'Joe', 'Armstrong'}, {person, 'Robert', 'Virding'},
{person, 'Mike', 'Williams'}]
[72,101,108,108,111,32,87,111,114,108,100]
[$H,$e,$l,$l,$o,$ ,$W,$o,$r,$l,$d]
"Hello World"
Erlang List Functions and Operations
ลิสท์เป็นประเภทของข้อมูลที่มีประโยชน์มากที่สุดของเอิร์ลแลงเลยก็ว่าได้ และเมื่อนำมาใช้งานร่วมกับทัปเปิลทำให้มีประสิทธิภาพสูงขึ้นไปอีก เนื่องจากเราสามารถใช้แทน ข้อมูลที่มีโครงสร้างซับซ้อนได้ทั้งหมด เช่นเรามักจะใช้ลิสท์เก็บกลุ่มของออบเจคที่สามารถถูกแยกไปเป็นกลุ่มย่อยๆ เพื่อนำไปรวมกันใหม่เพื่อทำการวิเราะห์ที่เราต้องการได้
ลิสท์เองก็เตรียมโอเปอร์เรชั่นหลายๆอย่างมาให้เราใช้งานได้เลยดังตัวอย่าง โดยที่โอเปอร์เรชั่นเหล่านี้ไม่ใช้ BIFs ดังนั้นการเรียกใช้งานจำเป็นต้องใช้เครื่องหมาย : คั่น
1> lists:max([1,2,3]).
3
2> lists:reverse([1,2,3]).
[3,2,1]
3> lists:sort([2,1,3]).
[1,2,3]
4> lists:split(2,[3,4,10,7,9]).
{[3,4],[10,7,9]}
5> lists:sum([3,4,10,7,9]).
33
6> lists:zip([1,2,3],[5,6,7]).
[{1,5},{2,6},{3,7}]
7> lists:delete(2,[1,2,3,2,4,2]).
[1,3,2,4,2]
8> lists:last([1,2,3]).
3
9> lists:member(5,[1,24]).
false
10> lists:member(24,[1,24]).
true
11> lists:nth(2,[3,4,10,7,9]).
4
12> lists:length([1,2,3]).
** exception error: undefined function lists:length/1
13> length([1,2,3]).
3
ที่มา: http://roofimon.exteen.com/20091209/erlang-5-list
[january, february, march]
[123, def, abc]
[a,[b,[c,d,e],f], g]
[]
[{person, 'Joe', 'Armstrong'}, {person, 'Robert', 'Virding'},
{person, 'Mike', 'Williams'}]
[72,101,108,108,111,32,87,111,114,108,100]
[$H,$e,$l,$l,$o,$ ,$W,$o,$r,$l,$d]
"Hello World"
Erlang List Functions and Operations
ลิสท์เป็นประเภทของข้อมูลที่มีประโยชน์มากที่สุดของเอิร์ลแลงเลยก็ว่าได้ และเมื่อนำมาใช้งานร่วมกับทัปเปิลทำให้มีประสิทธิภาพสูงขึ้นไปอีก เนื่องจากเราสามารถใช้แทน ข้อมูลที่มีโครงสร้างซับซ้อนได้ทั้งหมด เช่นเรามักจะใช้ลิสท์เก็บกลุ่มของออบเจคที่สามารถถูกแยกไปเป็นกลุ่มย่อยๆ เพื่อนำไปรวมกันใหม่เพื่อทำการวิเราะห์ที่เราต้องการได้
ลิสท์เองก็เตรียมโอเปอร์เรชั่นหลายๆอย่างมาให้เราใช้งานได้เลยดังตัวอย่าง โดยที่โอเปอร์เรชั่นเหล่านี้ไม่ใช้ BIFs ดังนั้นการเรียกใช้งานจำเป็นต้องใช้เครื่องหมาย : คั่น
1> lists:max([1,2,3]).
3
2> lists:reverse([1,2,3]).
[3,2,1]
3> lists:sort([2,1,3]).
[1,2,3]
4> lists:split(2,[3,4,10,7,9]).
{[3,4],[10,7,9]}
5> lists:sum([3,4,10,7,9]).
33
6> lists:zip([1,2,3],[5,6,7]).
[{1,5},{2,6},{3,7}]
7> lists:delete(2,[1,2,3,2,4,2]).
[1,3,2,4,2]
8> lists:last([1,2,3]).
3
9> lists:member(5,[1,24]).
false
10> lists:member(24,[1,24]).
true
11> lists:nth(2,[3,4,10,7,9]).
4
12> lists:length([1,2,3]).
** exception error: undefined function lists:length/1
13> length([1,2,3]).
3
ที่มา: http://roofimon.exteen.com/20091209/erlang-5-list
ไม่มีความคิดเห็น:
แสดงความคิดเห็น