CLISP

TutorialsTitlesDescriptions
Tutorials-1How to start Artificial Intelligenceนับถอยหลังหลัง 13 ปีที่แล้ว (พ.ศ. 2546) ผมได้รู้จักภาษา “CLISP” และต้องเขียนจริงจังเพื่อทำโปรเจคให้จบปริญญาโท เนื่องจากหนังสือภาษาไทยก็น้อยมาก และเป็นภาษาที่ไม่ใช่ภาษาตลาดที่โปรแกรมเมอร์รุ่นใหม่จะจบมาเพื่อทำเงิน หรือเขียนเพื่อตอบสนองทางธุรกิจได้รวดเร็ว แต่ภาษา “LISP” มีโครงสร้างแปลกประหลาด และเป็น “object-oriented programming” รุ่นคุณปู่ จึงเหมาะสำหรับการสร้าง “Core Engine” สำหรับสร้างปัญญาประดิษฐ์ (Artificial Intelligence) เพราะไฟล์จะมีขนาดเล็กและสามารถเชื่อมต่อกับภาษาอื่น ๆ เพื่อจะสร้าง “Interface” เพื่อความสวยงามจะสร้างด้วยภาษาอะไรก็ได้ ในบทความนี้จะกล่าวถึงการติดตั้งและใช้งานโปรแกรม “CLISP” เบื้องต้น
Tutorials-2How to start Artificial Intelligence – number and operatorจากบทความก่อนหน้า (How to start Artificial Intelligence) กล่าวถึงการติดตั้งและทดลองใช้ฟัง์ชัน + – * / ทางคณิตศาสตร์ ในบทความนี้จะอธิบายถึงค่าตัวเลข (number) ประเภทต่าง ๆ และตัวดำเนินการทางคณิตศาสตร์แบบอื่น (mathematics operator)
Tutorials-3How to start Artificial Intelligence – variableภาษา Lisp สามารถสร้างตัวแปร (Variable) ได้เช่นเดียวกับภาษาอื่น ๆ โดยมีฟังก์ชันสำคัญ “setq” และ “set” โดยตัวแปรก็เหมือนกับที่ๆ เก็บข้อมูลในหน่วยความจำ และสามารถเรียกใช้เมื่อไหร่ก็ได้จนกว่าค่าจะเปลี่ยนหรือโดนลบไป
Tutorials-4How to start Artificial Intelligence – listโครงสร้างลิสต์ (List) ได้กล่าวเบื้องต้นมาแล้วในบทความ (How to start Artificial Intelligence – number and operator) และลิสต์เป็นโครงสร้างของภาษา “lisp” ที่ต้องอยู่ภายใน () โดยมีสมาชิกเป็น atom ชนิดต่าง หรือเป็นลิสต์ย่อย หรือเป็น () ว่าง ๆ ที่เรียกว่าลิสต์ว่าง (empty list) ลัษณะของ list จึงคล้ายกับ array เพราะฉะนั้นจึงมีฟังก์ชันที่สำคัญดังนี้
Tutorials-5How to start Artificial Intelligence – predicate“Predicate” คือ ฟังก์ชันชนิดหนึ่งของ “CLISP” ทำหน้าที่สำหรับตรวจสอบสัญลักษณ์ต่าง ๆ โดยค่าส่งกลับจะเป็น “True” หรือใช้ “t” และค่า “False” หรือใช้สัญลักษณ์ “nil”
Tutorials-6How to start Artificial Intelligence – condition“Condition” หรือเงื่อนไขสำหรับการตัดสินใจ สำหรับโปรแกรมต้องมีทางเลือกต่าง ๆ ดังเช่นภาษาอื่น เช่น if..then..else.., Select…case เป็นต้น ในภาษา “Clisp” เงื่อนไขสำหรับการตัดสินใจ จะต้องใช้รวมกับ “Predicate”
Tutorials-7How to start Artificial Intelligence – functionนอกจากฟังก์ชันที่อยู่ใน “CLISP” เราสามารถสร้างฟังก์ชันขึ้นมาเองได้โดยใช้คำสั่ง “Defun” ซึ่งสามารถทำให้ฟังก์ชันสามารถเขียนได้อย่างสลับซับซ้อนมากขึ้นและไปเป็นตามวัตถุประสงค์
Tutorials-8How to start Artificial Intelligence – recursion“Recursion” หรือ “Recursive function” เป็นลักษณะของการเขียนโปรแกรมด้วยเรียกฟังก์ชันเดิมซ้ำ จนถึงเงื่อนไขที่จะทำให้ยุติการเรียกใช้ฟังก์ชันเดิมอีกต่อไป แล้วผลของการ “Return” ฟังก์ชันสุดท้ายจะย้อนกลับไปเรื่อยจนถึงฟังก์ชันที่ใช้ครั้งแรก สาเหตุที่ต้องมีเงื่อนไขเพื่อยุติการเรียกใช้ฟังก์ชัน มิเช่นนั้นโปรแกรมจะไม่มีการเรียกตัวเองอย่างสิ้นสุด
Tutorials-9How to start Artificial Intelligence – iteration (1)ฟังก์ชันวนรอบ (iteration) มีความคล้ายคลึงกับ “recursion” ช่วยให้ไม่ต้องเขียนโปรแกรมซ้ำ ๆ หรือหลายบรรทัด ในบทความนี้นำเสนอฟังก์ชัน “dotimes” และ “dolist” ซึ่งมีลักษณะการใช้งานแตกต่างกันเล็กน้อย