ในห้อง #ubuntu-th มีบอทอยู่ตัวนึงของ willwill คราวนี้มันมีความสามารถพิเศษอยู่อย่างคือคำสั่ง math โดยจะเรียกไปที่โปรแกรม bc ตอนแรกผมก็นึกว่ามันเป็นคำสั่งที่ให้คำนวนเลขธรรมดา แต่ด้วยความสงสัยด้วยว่าอะไรคือ bc เลยลองเปิดใน Terminal เครื่อง mac(ปลอมๆ) ที่ทำงานซะหน่อย แล้วก็ได้ด้วย
เปิดมาตอนแรกก็เล่นไม่เป็นเลยต้องไปหาผู้ชาย(man) มาช่วยซะหน่อยเลยรู้ด้วยเลยว่า bc มันคืออะไร
bc – An arbitrary precision calculator language
แล้ว bc มันมาจากตัวไหนของชื่อเต็มหละฟะ ช่างมันเพราะที่น่าสนใจมันไม่ได้อยู่ตรงนี้ แต่มันสามารถเขียนโปรแกรมในนี้ได้เลยโดยรูปแบบภาษาก็คล้ายๆ ภาษาซี แต่ไม่ได้ใช้ compiler เท่านั้นเองเพราะอันนี้พิมพ์ประโยคเสร็จกด enter ผลลัพธ์กลับมาเลยเช่น
llun@pluto:~$ bc bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 10+5 15
ดูแล้วอาจจะงงๆ บรรทัดไหนที่เราพิมพ์ บรรทัดไหนคำตอบวะ แต่คนพิมพ์เองคงไม่งงเท่าไหร่ยกเว้นเรียกใช้ function แหะๆ เนื่องจากโปรแกรมนี้ไม่มี prompt เหมือนของภาษาอื่นอย่าง ruby จากด้านบนที่พิมพ์ไปคือ 10+5 พอ enter ปุ๊บคำตอบก็โผล่มาในบรรทัดถัดมาเลยคือ 15 หลายคนอาจงงแล้วมันจะเขียนโปรแกรมได้ยังไง งั้นลองดูต่อบรรทัดล่างละกัน
llun@pluto:~$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
define frac(x) {
if (x > 0)
{ return x*frac(x-1) }
return 1
}
frac(5)
120ด้านบนนี้ผมประกาศ function เล็กๆ ชื่อ frac รับ parameter ไปตัวคือ x คนที่เรียนคอมมาก็คงมองออกว่าเป็น function หา fractorial ง่ายๆ มีใครสังเกตุอะไรแปลกๆ มั้ยครับ มันไม่ต้องปิดแต่ละคำสั่งด้วย “;” เหมือน javascript ด้วยหละ คราวนี้มาดูประกาศตัวแปรกับพวก if, loop มั่งดีกว่า
i=0
while(i<5) {
print i,"n"
i++
}
0
0
1
1
2
2
3
3
4
4การประกาศตัวแปรของ bc ก็ง่ายๆ อีกเขียนขึ้นมาได้เลย ไม่ต้องมีการกำหนดอะไร ส่วนคำสั่งที่ใช้คุม flow ก็จะเหมือนกับภาษาซี (น่าจะบอกว่าเหมือน javascript มากกว่าแฮะ) การใช้ array ก็กำหนดข้อมูลให้ทีละช่องไปเลย ไม่ต้องบอกขนาดมาก่อน (หรือต้องบอกไม่รู้เหมือนกันแฮะ) เหมือนกับภาษา php เอาหละเขียนมาเยอะและยังไงก็ต้องลองไปเล่นดูละกันครับ
นั่นดิ มันย่อจากอะไร – -? ถ้า php/bc มันคือ Binary Calculator ถ้า POSIX/GNU มันคือ basic ใช่ไหมเอ่ย – -?
แต่มันคงไม่ใช่ เครื่องคิดเลขของบุญชิต ม้ัง ฮะฮะ
ป.ล. บุญชิต เป็น ปะกิต ^^!
ดีจังมีคนเขียนถึงบอต
อย่าเอาคำสั่งหา pi ไปรันในบอตนะครับ
ปล. แถมท้าย scale=1000 ก่อนแล้วค่อยสั่ง จะออกทศนิยม 1000 ตำแหน่งครับ สังเกตว่าตัดบรรทัดให้ด้วย แต่ willwillBot จะแสดงบรรทัดเดียวครับ