Elm - ห่วง

Elm เป็นภาษาโปรแกรมที่ใช้งานได้ Elm ใช้แนวคิดการเรียกซ้ำเป็นทางเลือกหนึ่งของโครงสร้างการวนซ้ำแบบเดิม

บทนี้จะกล่าวถึงแนวคิดของการเรียกซ้ำ

การเรียกซ้ำ

ภาษาโปรแกรมคอมพิวเตอร์บางภาษาอนุญาตให้โมดูลหรือฟังก์ชันเรียกตัวเองได้ เทคนิคนี้เรียกว่าการเรียกซ้ำ

ภาพประกอบ

ในโปรแกรมนี้เราจะดูวิธีใช้การเรียกซ้ำเพื่อแสดงสวัสดีห้าครั้ง

Step 1 − Create a file Loop.elm

สร้างโมดูลลูปและกำหนดฟังก์ชัน sayHello. ฟังก์ชัน sayHello รับค่าจำนวนเต็มเป็นอินพุตและส่งกลับค่าสตริง

module Loop exposing(..)
//function signature
sayHello:Int ->String
//function implementation
sayHello n =
   case n of
   1 -> "Hello:1 "
   _ -> "Hello:" ++ toString (n) ++ " " ++ sayHello(n-1)

ฟังก์ชัน sayHello ตรวจสอบว่าพารามิเตอร์ผ่านคือ 1 หรือไม่หากพารามิเตอร์เป็น 1 ฟังก์ชันจะส่งกลับมิฉะนั้นจะสร้างสตริง Hello และเรียกใช้ฟังก์ชันเดียวกัน

Step 2 − Invoke sayHello from REPL

เปิด elm REPL จากโฟลเดอร์โครงการปัจจุบัน (ตำแหน่งของไฟล์ Loop.elm)

//import the module Loop
> import Loop exposing(..)
//invoke the sayHello function with parameter value as 5
> sayHello 5
"Hello:5 Hello:4 Hello:3 Hello:2 Hello:1 Hello:0 " : String
>

ภาพประกอบ

ตัวอย่างต่อไปนี้พิมพ์ผลรวมของจำนวน n โดยใช้การเรียกซ้ำ

> sumOfNos n =\
| if n==0 then 0 \
| else (n) + sumOfNos (n-1)
<function> : number -> number1

ใน elm REPL เราได้สร้างฟังก์ชัน sumOfNos ที่รับหมายเลขอินพุตและรวมตัวเลขทั้งหมดจาก 0 ถึงตัวเลขนั้น

ตัวอย่างเช่นถ้าเราผ่านการป้อนข้อมูลเท่าที่ 5 ก็จะสรุป1 + 2 + 3 + 4 + 5ซึ่งเป็นวันที่ 15

> ssumOfNos 5
15 : number

ผลลัพธ์ของโปรแกรมแสดงไว้ด้านบน