emacs lisp (in Thai)
www.tanabutr.co.th/photobook
หลังจากที่ดูโค้ดที่โพสไปแล้วเรื่อง emacs lisp แล้วก็ได้คอมเมนต์มาจากพี่ฮุ้ยว่าถ้าเปลี่ยน "if" เป็น "ถ้า", เปลี่ยน "defun" เป็น "นิยามฟังชัน" อะไรทำนองนี้ก็น่าจะดี.
ผมคิดอยู่เหมือนกันว่าโค้ดที่โพสไปยังมีสิ่งที่ต้องแก้ไขอีกเช่นแค่ตั้งฟังชันชื่อ "บวก" ไม่น่าจะต้องเขียนซะยาวขนาดนั้นเพราะมันก็มีฟังชันที่ทำหน้าที่บวกอยู่แล้ว. กล่าวคือ (emacs) lisp มันเป็นภาษาที่ผูกชื่อกับฟังชัน, ค่า, อะไรทำนองนี้ มันน่าจะมีวิธีที่ตั้งชื่อฟังชันต่างๆหรือเปลี่ยนชื่อฟังชันต่างๆให้เป็นภาษาไทยอยู่แล้ว.
หลังจากกลับมาที่บ้านเลยหาต่อเลยเจอแล้วว่าต้องทำอย่างไรถึงจะตั้งขื่อฟังชันต่างๆให้เป็นภาษาไทยได้. การตั้งชื่อฟังชันที่มีอยู่ให้เป็นภาษาไทยก็คือการให้ชื่อใหม่. และการให้ชื่อใหม่ก็คือการตั้งชื่อใหม่แล้วไปเชื่อมกับนิยามของฟังชันที่มีอยู่แล้วด้วยฟังชัน fset. เลยได้แบบนี้ครับ.
; buffer ที่ใช้อยู่ต้องเป็น lisp-interaction-mode นะ (fset 'สร้างฟังชันชื่อ (symbol-function 'fset)); Ctrl+j ตาม (สร้างฟังชันชื่อ 'จากนิยามของฟังชัน (symbol-function 'symbol-function)); Ctrl+j ตาม (สร้างฟังชันชื่อ 'บวก (จากนิยามของฟังชัน '+)); Ctrl+j ตาม (บวก 1 2 3); Ctrl+j แล้วจะได้ผลลัพธ์ 6
ที่ emacs เขียนภาษาไทยได้นี้ก็ต้องยกความดีความชอบให้คุณ Handa Kenichi แต่เพียงผู้เดียว(?). เดี๋ยวเอาไปเขียนสรุปเป็นบทความสั้นที่ LTN ดีกว่า.
จริงๆแล้วทำไมวันนี้ถึงเขียนเรื่อง emacs lisp ก็เพราะเมื่อคืนเปิดกล่องหลังสือเก่าๆแล้วเจอหนังสือเกี่ยวกับ emacs lisp ที่เคยอ่านเมื่อ 7 ปีที่แล้ว (นานขนาดนั้นแล้วหรือนี่). วันนี้เลยอ่านอีกครั้งระหว่างนั่งรถไปทำงาน. หนังสือเล่มนี้อ่านง่ายและเผอิญคนเขียนทำงานอยู่ที่มหาวิทยาลัยที่ผมจบด้วย.
Comments: blogger