Simple Example
อย่าเพิ่งคิดอะไรมากนะครับ ถ้ายังไม่ทราบว่ามันคืออะไรก็ยังไม่ต้องตกใจ เรามาเริ่มดู code ที่แสนจะง่ายกันคือการคำนวน factorial ซึ่งความหมายทางคณิตศาสตร์คือn! = 1 when n=0, otherwise
n! = n * (n-1)
หรือ n! จะมีค่าเป็น 1 ต่อเมื่อ n มีค่าเป็นศูนย์แล้ว แต่ถ้าไม่ใช่ n! จะมีค่าเป็น n * (n-1) ซึ่งเมื่อทำการแปลงความหมายออกมาเป็น programming แล้วจะเขียนได้เป็นภาษา ruby ได้ดังนี้
def fact(n) |
อาจจะสังเกตุได้ว่ามันจะทำการเรียกตัวเองซ่ำที่ตอนท้าย เราเรียกว่าเป็น recursive function ซึ่งการเขียน program ในภาษา ruby นั้นมีโคตรงสร้างคล้ายกับรูปแบบ Algol-like (อันที่จริงแล้ว ไวยกรณ์ (syntex) คล้ายกับภาษา Eiffle มาก) ซึ่งมันจะทำซ้ำจนกว่าไม่มีการเรียกตัวเองซ้ำ เราสามารถนำ code ข้างต้นที่เป็นเพียงแต่ function ไปทำการเขียนให้อยู่ในรูปแบบการรับค่าได้ดังนี้
# Program to find the factorial of a number |
ในที่นี้ ARGV เป็น array ที่รับค่ามาจาก command line agrument และ to_i เป็นการแปลงค่าให้เป็น integer เพื่อนำไปคำนวนได้
% ruby fact.rb 1 |
คราวต่อไปลองใส่ซัก 40 ดู ถ้าเป็นเครื่องคิดเลขจะเกิด overflow
% ruby fact.rb 40 |
แต่แล้ว ruby ก็ยังสามารถคำนวนได้ งั้นลอง 400 ดูสิ
% ruby fact.rb 400 |
ก็ยังสามารถคำนวนได้ แต่ผมไม่มีเวลามาตรวจความถูกต้องแต่แน่นอน "มันควรจะถูกต้องเป๊ะๆเลย"
The input loop
ruby ยังสามารถทำการประมวลผลจาก standard input โดยจะเริ่มประมวลหลังจากจบการเขียน
% ruby |

