สำหรับใครที่ต้องการรู้ประวัติของ Erlang ถ้าต้องการ Download
เริ่มต้นกันก่อนที่ Erlang Shell
คำสั่งพื้นฐานที่จำเป็นใช้ใน Erlang Shell
help(). เรียกดูคำสั่งที่ของ Erlang Shell ทั้งหมด
q(). ออกจาก Erlang Shell
pwd(). ดูว่าเรากำลังทำงานอยู่ในไดเรกทรอรีไหน
cd("C:/Users/Me/WorkingDir"). เปลี่ยนไดเรกทรอรีที่ทำงานไปที่ C:/Users/Me/WorkingDir
ls(). ดูรายการในไดเรกทรอรี
os:cmd("notepad myprog.erl"). เรียกใช้คำสั่งเฉพาะของ OS
c(myprog). คอมไพล์ Module ต้องมีไฟล์ชื่อ myprog.erl อยู่ในไดเรกทรอรีที่ทำงานอยู่ก่อนคอมไพล์
m(myprog). ดูรายการ public function ใน Module นี้
myprog:function(arguments). เรียกในฟังก์ชั่นใน Module
2 + 3 * 4. ตัวอย่างการเขียน Expression
Variable = expression. ผูกตัวแปรเข้ากับนิพจน์ ผูกได้เพียงครั้งเดียวเท่านั้น
f(Variable). ยกเลิกการผูกค่าตัวแปร
f(). ยกเลิกการผูกค่าตัวแปรทั้งหมด
การออกจากการวนรอบและ deadlock ของโปรแกรม
กด Ctrl+G เรียก job control menu เรียกดูคำสั่งที่เกี่ยวข้อง -->h
ตัวเลขใน Erlang
ตัวเลขใน Erlang แบ่งเป็นสองกลุ่มใหญ่คือ เลขจำนวนเต็ม (integers) และเลขทศนิยม (floats) โดยมีวิธีการให้งานตัวเลขดังนี้
1. เลขจำนวนเต็ม (Integers)
- จำนวนเต็มบวก จำนวนเต็มลบ เป็นแบบ Arbitrary-precision arithmetric
- เลขฐาน มีรูปแบบการเขียนเป็น base#value
- รหัสตัวอักษร ASCII มีรูปแบบการเขียนเป็น $Character
2. เลขทศนิยม (Floats)
- จำนวนจริงขนาด 64-bit
ตัวดำเนินการทางคณิตศาสตร์
+ unary + * multiplication
- unary – / division
+ addition div หารเอาผลจำนวนเต็ม
- subtraction rem หารเอาเศษ
Atoms
- Atoms เป็นการประกาศค่าคงที่ซึ่งมีค่าก็คือตัวของมันเอง
- การประกาศค่าขึ้นต้นด้วยอักษรตัวเล็กเสมอ (lowercase) หรืออยู่ภายในเครื่องหมาย single quotes (')
- ใช้อักษรตัวใหญ่ ตัวเลข เครื่องหมาย @ . _ ได้ถ้า atom ขึ้นต้นด้วยอักษรตัวเล็กแล้ว
- ใช้เครื่องหมายใด ๆ ก็ได้ถ้าอยู่ภายใน single quotes (')
Booleans
- ไม่มีการแยกชนิดค่า Boolean หรือตัวอักษร (character) ใน Erlang
- เราใช้ค่าอะตอม true และ false ร่วมกับการเปรียบเทียบทางตรรกศาสตร์
- Atoms มีลำดับเรียงตามลำดับตัวอักษร
1==2. false
1<2. true
a>z. false
less<more. true
การตรวจสอบค่าที่นำมาทดสอบเป็น boolean หรือไม่
is_boolean(9+9). ผลลัพธ์ false
is_boolean(9==9). ผลลัพธ์ true
ตัวดำเนินการทางด้านตรรกศาสตร์
and or xor not andalso (คืนค่า false ถ้านิพจน์แรก false ไม่ทดสอบนิพจน์ต่อไป) orelse (คืนค่า true ถ้านิพจน์แรก true ไม่ทดสอบนิพจน์ต่อไป)
Tuples
- ใช้เก็บข้อมูลไว้เป็นกลุ่ม
- กำหนดค่าไว้ภายในเครื่องหมาย {...} แต่ละส่วนภายในคั่นด้วยเครื่องหมายจุลภาค (,)
- ใน tuple ส่วนแรกสุดคือ atom ถูกเรียกว่า tag เอาไว้ช่วยสื่อถึงข้อมูลภายในของ tuple
- ตัวชี้ (index) ใน tuple ส่วนแรกเริ่มที่ 1
ฟังก์ชั่นพื้นฐานที่เกี่ยวข้อง
ดูขนาดของ tuple
tuple_size({abc,{def,123},zxy}). ผลลัพธ์ 3
เรียกดูส่วนที่ต้องการ
element(2,{abc,{def,123},zxy}). ผลลัพธ์ {def,123}
ตั้งค่าใน tuple ในส่วนที่ต้องการ
setelement(2,{abc,{def,123},zxy},def). ผลลัพธ์ {abc,def,zxy}
Lists
- ใช้เก็บข้อมูลไว้เป็นกลุ่ม
- กำหนดค่าไว้ภายในเครื่องหมาย [...] แต่ละส่วนภายในคั่นด้วยเครื่องหมายจุลภาค (,)
- List และ Tuples มีความแตกต่างกันทางด้านในการนำไปประมวลผล
[sunday,monday,tuesday,wednesday,thursday,friday,saturday]
[{pet,'dog','chiro'},{pet,'cat','kuroiro'}]
[$h,$e,$l,$l,$o]
[104,101,108,108,111]
"hello"
Characters, Strings
- ตัวอักษรแสดงแทนด้วยตัวเลขจำนวนเต็ม (integers)ข้อความ (Strings) แทนด้วย list ของเลขจำนวนเต็ม โดยค่าของตัวเลขคือรหัส ASCII
- ค่าตัวเลขของตัวอักษรเขียนโดยมี $ นำหน้าตัวอักษร
$A.
$a + 10.
- การเขียนค่า String
[65,66,67]. ผลลัพธ์ "ABC"
[$A,$B,$C]. ผลลัพธ์ "ABC"
ไม่มีความคิดเห็น:
แสดงความคิดเห็น