How to start Artificial Intelligence – predicate

บทนำ (Overview)

“Predicate” คือ ฟังก์ชันชนิดหนึ่งของ “CLISP” ทำหน้าที่สำหรับตรวจสอบสัญลักษณ์ต่าง ๆ โดยค่าส่งกลับจะเป็น “True” หรือใช้ “t” และค่า “False” หรือใช้สัญลักษณ์ “nil” จากตัวอย่างดังต่อไปนี้

ขั้นตอน (Steps)

  1. “listp” ใช้ตรวจสอบว่าเป็น “lisp” หรือไม่
    [1](listp 1)
    NIL
    [2](listp '(1 2))
    T
    
  2. “numberp” ใช้ตรวจสอบว่าเป็นตัวเลขหรือไม่
    [1](numberp 1)
    T
    [2](numberp '())
    NIL
    
  3. atom ใช้ตรวจสอบว่าเป็น Atom หรือไม่
    [1](atom nil)
    T
    [2](atom 50)
    T
    [3](atom '())
    T
    [4](atom '(a))
    

จากข้างต้นเป็น “Predicate” สำหรับการตรวจสอบ atom, number, และ list นอกจากนี้ยังมีฟังก์ชันสำหรับการตรวจสอบจำนวนตัวเลขดังนี้

  1. การตรวจสอบตัวเลขคู่และคี่
    [1](evenp 1)
    NIL
    [2](oddp 1)
    T
    [3](evenp 2)
    T
    [4](oddp 2)
    NIL
    
  2. การตรวจสอบจำนวนที่มีค่า “+” หรือ “-”
    [5](plusp 1)
    T
    [6](minusp -1)
    T
    

เราสามารถตรวจสอบค่าระหว่างสัญลักษณ์ได้ โดยใช้ “Predicate equal” หรือใช้ตัวดำเนินการได้อย่างง่าย ๆ เหมือนใน หลาย ๆ ภาษาดังนี้

  1. “equal” ระหว่างค่าของ 2 อาร์กิวเมนต์
    [1]> (equal 1 1)
    T
    [2]> (equal 1 2)
    NIL
    
  2. นอกจากนี้เรายังสามารถใช้ Operator (=, /=, >, >=, <, <=) โดยมีค่าอาร์กิวเมนต์ไม่จำกัดดังนี้
    [1]> (= 1 1)
    T
    [2]> (= 1 1 1)
    T
    [3]> (= 1 1 1 2)
    NIL
    [4]> (/= 1 1)
    NIL
    [5]> (/= 1 2)
    T
    [6]> (/= 1 2 3)
    T
    [7]> (/= 1 1 1)
    NIL
    [8]> (> 1 2)
    NIL
    [9]> (> 3 2)
    T
    [10]> (> 3 2 1)
    T
    [11]> (> 3 2 2)
    NIL
    [12]> (>= 1 1 1)
    T
    [13]> (>= 2 1 1)
    T
    [14]> (>= 2 1 3)
    NIL
    

ใส่ความเห็น