Erlang - ไวยากรณ์พื้นฐาน
เพื่อที่จะเข้าใจไวยากรณ์พื้นฐานของ Erlang ก่อนอื่นเรามาดูง่ายๆ Hello World โปรแกรม.
ตัวอย่าง
% hello world program
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("Hello, world!\n").
สิ่งต่อไปนี้ต้องสังเกตเกี่ยวกับโปรแกรมข้างต้น -
เครื่องหมาย% ใช้เพื่อเพิ่มความคิดเห็นให้กับโปรแกรม
คำสั่งโมดูลก็เหมือนกับการเพิ่มเนมสเปซในภาษาโปรแกรมใด ๆ ตรงนี้เรากำลังพูดถึงว่าโค้ดนี้จะเป็นส่วนหนึ่งของโมดูลที่เรียกว่าhelloworld.
ฟังก์ชันการส่งออกถูกใช้เพื่อให้สามารถใช้ฟังก์ชันใด ๆ ที่กำหนดไว้ภายในโปรแกรมได้ เรากำลังกำหนดฟังก์ชันที่เรียกว่า start และในการใช้ฟังก์ชัน start เราต้องใช้คำสั่ง export /0 หมายความว่าฟังก์ชัน 'start' ของเรายอมรับพารามิเตอร์ 0
ในที่สุดเราก็กำหนดฟังก์ชันเริ่มต้นของเรา ที่นี่เราใช้โมดูลอื่นที่เรียกว่าioซึ่งมีฟังก์ชันอินพุตเอาต์พุตที่จำเป็นทั้งหมดใน Erlang เราใช้ไฟล์fwrite ฟังก์ชันเพื่อส่งออก“ Hello World” ไปยังคอนโซล
ผลลัพธ์ของโปรแกรมข้างต้นจะเป็น -
เอาต์พุต
Hello, world!
รูปแบบทั่วไปของคำชี้แจง
ใน Erlang คุณได้เห็นว่ามีสัญลักษณ์ต่าง ๆ ที่ใช้ในภาษา Erlang มาดูสิ่งที่เราได้เห็นจากโปรแกรม Hello World แบบง่ายๆ -
สัญลักษณ์ยัติภังค์ (–)โดยทั่วไปจะใช้ร่วมกับโมดูลคำสั่งนำเข้าและส่งออก สัญลักษณ์ยัติภังค์ใช้เพื่อให้ความหมายของแต่ละคำสั่งตามนั้น ดังนั้นตัวอย่างจากโปรแกรม Hello world จึงแสดงในโปรแกรมต่อไปนี้ -
-module(helloworld).
-export([start/0]).
แต่ละคำสั่งถูกคั่นด้วยจุด (.)สัญลักษณ์. แต่ละคำสั่งใน Erlang จำเป็นต้องลงท้ายด้วยตัวคั่นนี้ ตัวอย่างจากโปรแกรม Hello world ดังที่แสดงในโปรแกรมต่อไปนี้ -
io:fwrite("Hello, world!\n").
เครื่องหมายทับ (/) สัญลักษณ์ถูกใช้ร่วมกับฟังก์ชันเพื่อกำหนดจำนวนพารามิเตอร์ที่ฟังก์ชันยอมรับ
-export([start/0]).
โมดูล
ใน Erlang รหัสทั้งหมดจะแบ่งออกเป็นโมดูล โมดูลประกอบด้วยลำดับของแอตทริบิวต์และการประกาศฟังก์ชัน มันเหมือนกับแนวคิดของเนมสเปซในภาษาโปรแกรมอื่น ๆ ซึ่งใช้เพื่อแยกหน่วยของโค้ดที่แตกต่างกันอย่างมีเหตุผล
การกำหนดโมดูล
โมดูลถูกกำหนดด้วยตัวระบุโมดูล ไวยากรณ์และตัวอย่างทั่วไปมีดังนี้
ไวยากรณ์
-module(ModuleName)
ModuleName จะต้องเหมือนกับชื่อไฟล์ลบนามสกุล .erl. มิฉะนั้นการโหลดโค้ดจะไม่ทำงานตามที่ตั้งใจไว้
ตัวอย่าง
-module(helloworld)
โมดูลเหล่านี้จะกล่าวถึงในรายละเอียดในบทต่อ ๆ ไปนี่เป็นเพียงเพื่อให้คุณเข้าใจพื้นฐานว่าควรกำหนดโมดูลอย่างไร
คำชี้แจงการนำเข้าใน Erlang
ใน Erlang หากต้องการใช้ฟังก์ชันการทำงานของโมดูล Erlang ที่มีอยู่สามารถใช้คำสั่ง import ได้ รูปแบบทั่วไปของคำสั่งนำเข้าแสดงอยู่ในโปรแกรมต่อไปนี้ -
ตัวอย่าง
-import (modulename, [functionname/parameter]).
ที่ไหน
Modulename - นี่คือชื่อของโมดูลที่ต้องนำเข้า
functionname/parameter - ฟังก์ชันในโมดูลที่ต้องนำเข้า
มาเปลี่ยนวิธีการเขียนโปรแกรม hello world เพื่อใช้คำสั่งนำเข้า ตัวอย่างจะเป็นดังที่แสดงในโปรแกรมต่อไปนี้
ตัวอย่าง
% hello world program
-module(helloworld).
-import(io,[fwrite/1]).
-export([start/0]).
start() ->
fwrite("Hello, world!\n").
ในโค้ดด้านบนเราใช้คีย์เวิร์ดนำเข้าเพื่อนำเข้าไลบรารี 'io' และโดยเฉพาะไฟล์ fwriteฟังก์ชัน ดังนั้นเมื่อใดก็ตามที่เราเรียกใช้ฟังก์ชัน fwrite เราไม่ต้องพูดถึงio ชื่อโมดูลทุกที่
คำสำคัญใน Erlang
คำหลักเป็นคำสงวนใน Erlang ซึ่งไม่ควรใช้เพื่อวัตถุประสงค์อื่นใดนอกเหนือจากวัตถุประสงค์ที่มีไว้เพื่อ ต่อไปนี้เป็นรายการคำหลักใน Erlang
หลังจาก | และ | และนอกจากนี้ยังมี | วงดนตรี |
เริ่ม | bnot | บอ | bsl |
bsr | bxor | กรณี | จับ |
เงื่อนไข | div | จบ | สนุก |
ถ้า | ปล่อย | ไม่ | ของ |
หรือ | หรืออื่น ๆ | รับ | rem |
ลอง | เมื่อไหร่ | xor |
ความคิดเห็นใน Erlang
ข้อคิดเห็นใช้ในการจัดทำเอกสารรหัสของคุณ ความคิดเห็นบรรทัดเดียวระบุได้โดยใช้ไฟล์%สัญลักษณ์ที่ตำแหน่งใดก็ได้ในเส้น ต่อไปนี้เป็นตัวอย่างเดียวกัน -
ตัวอย่าง
% hello world program
-module(helloworld).
% import function used to import the io module
-import(io,[fwrite/1]).
% export function used to ensure the start function can be accessed.
-export([start/0]).
start() ->
fwrite("Hello, world!\n").