Prolog [PROgramming LOGic] -- SWI Prolog and Eclipse Plug-in

คงจะเคยได้ยินกันมาบ้างนะครับ สำหรับภาษานี้
ภาษานี้ ผมได้เรียน และ รู้จักมันครั้งแรกตอนเรียนวิชา Programming Language
มันเป็นภาษาเชิงตรรกะ และจัดอยู่ประเภท Interpreter

ซึ่งตอนที่เรียน ก็ไม่ยากมากครับ (เรียนไม่ยากมาก) ใช้ตัวนี้เรียน
http://www.swi-prolog.org/

เขียนดิบใส่ Textmate แล้วรันผ่าน Terminal ... (จะเรียกว่า Run ก็ไม่ถูกซะทีเดียว เดี๋ยวค่อยว่ากัน)

ใครอยากลองอ่าน Doc ที่เป็นภาษาไทยเกี่ยวกับภาษานี้ ลองโหลดนี่ไปอ่านดูนะครับ

http://www.mediafire.com/?gb5i9w4ypcv19by

แล้วผมก็มาเจอมันอีกครั้งตอนนี้ ตอนเรียนวิชา AI (Artificial Intelligent)
อาจารย์ก็ให้ลง Eclipse Prolog ก็หาอยู่อยู่สักพัก พบว่า มันไม่ใช่โปรแกรมแยกเดี่ยว
มันเป็น Plug-in ของ Eclipse อีกทีหนึ่ง

Plug-in ตัวนี้ชื่อ The Prolog Development Tools
วิธีการลงก็ไม่ยากครับ

เปิดโปรแกรม Eclipse ขึ้นมา แล้วไปที่นี่


จากนั้นพอมันขึ้นมาให้เลือก Eclipse Marketplace แล้ว Search คำว่า "Prolog" 
ก้จะได้ผลลัพธ์ออกมาครับ มีอยู่อันเดียวแหละ

ก็ Next Generation ตามระเบียบ แล้วก็รอมัน Install ให้เรียบร้อยครับ...
ขอจบไว้ตรงนี้ก่อนนะครับ ไว้รู้วิธีการใช้งานแล้วจะมาอัพเดทอีกรอบนะครับ

ส่วนของโค้ดเนี่ย ขอ Review ผ่าน SWI-Prolog ดีกว่านะครับ ที่เคยใช้ถือว่าแจ่มดี
ภาษานี้ใช้ extension เป็น .pl นะครับ

นี่เป็นโปรแกรมง่ายๆ ครับ จะเห็นได้ว่าเรามีข้อมูลเพียบเลย โดยเราจะเขียนมันในรูปนี้นะครับ

dataName(valueName, value).
เราจะเรียกการ Define ค่าแบบนี้ว่า "Fact"

functionName(set of parameters) :- getParameter1, getParameter2, ...., getParameter(N), statement.
เราจะเรียกการ Define แบบนี้ว่า "Rules"

อย่างที่ผมบอกในตอนต้น ว่า "เราจะเรียกว่าการ Run ก็ไม่ถูก"
ภาษานี้เราจะคุ้นเคยกันดี ตอนที่เรียน Database สิ่งที่เราทำบ่อยๆ ก็คือการ Query ข้อมูล
นี่แหละครับ ใช่เลย ภาษานี้แหละ อาจจะเรียกว่าเป็น "แก่น" ของการ Query ข้อมูล
(แต่ผมก็ไม่รู้นะว่า MySQL มัน Implement ด้วยภาษานี้หรือป่าว ? :P)

เปิด Terminal ขึ้นแล้วไปที่ที่มีไฟล์ *.pl อยู่จากนั้นพิมพ์ swipl เพื่อให้พร้อมใช้งาน

จากนั้นก็พิมพ์ consult(filename). เพื่อเปิดไฟล์ผ่าน SWI-Prolog เพื่อให้พร้อมในการถามข้อมูล

นี่คือตัวอย่างการ Query ข้อมูลเบื้องต้น

ส่วน AI จะเรียนยังไงนั้น ขอต้องติดตามดูกันต่อไป
ถ้ามีเนื้อหา หรือการเขียนโปรแกรมที่น่าสนใจ เดี๋ยวจะ Blog เหมือนเดิม

Popular posts from this blog

[Android Dev] การติดตั้ง Eclipse+AndroidSDK เพื่อพัฒนาโปรแกรมบน Android

12 วิธี การบริการและดูแลลูกค้าในร้าน Starbucks

5 TED Talk ที่จะช่วยให้คุณทำงานดีขึ้น