ผลต่างระหว่างรุ่นของ "01204435/haskell2"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 16: | แถว 16: | ||
dot :: Vector -> Vector -> Double | dot :: Vector -> Vector -> Double | ||
− | + | ตัวอย่างฟังก์ชัน dot | |
*Main> dot (1,0) (1,0) | *Main> dot (1,0) (1,0) | ||
แถว 27: | แถว 27: | ||
0.0 | 0.0 | ||
− | addVector :: Vector -> Vector | + | addVector :: Vector -> Vector |
+ | |||
+ | ตัวอย่างฟังก์ชัน addVector | ||
*Main> addVector (1,2) (3,-4) | *Main> addVector (1,2) (3,-4) | ||
แถว 33: | แถว 35: | ||
negVector :: Vector -> Vector -> Vector | negVector :: Vector -> Vector -> Vector | ||
+ | |||
+ | ตัวอย่างฟังก์ชัน negVector | ||
*Main> negVector (10,-5) | *Main> negVector (10,-5) |
รุ่นแก้ไขเมื่อ 08:39, 4 กรกฎาคม 2556
เราจะอิมพลีเมนท์ Perceptron algorithm แบบง่าย (ข้อมูลมี 2 มิติ) บน Haskell
- อ่านรายละเอียดของ Perceptron algorithm
- อ่านรายละเอียดของแฟ้มข้อมูลทดสอบ: การทดลองเกี่ยวกับ perceptron
เราจะนิยามชนิดข้อมูล Vector เพื่อความสะดวกต่อไป
type Vector = (Double, Double)
ฟังก์ชันเกี่ยวกับเวกเตอร์
จริง ๆ แล้ว Haskell มีไลบรารีเกี่ยวกับเวกเตอร์ (ดู [1]) แต่เราจะเขียนเองเพื่อความง่ายและสะดวก
ด้านล่างเป็น type ของฟังก์ชัน dot (คำนวณ dot product), addVector และ negVector และตัวอย่าง
dot :: Vector -> Vector -> Double
ตัวอย่างฟังก์ชัน dot
*Main> dot (1,0) (1,0) 1.0 *Main> dot (1,0) (0,1) 0.0 *Main> dot (1,0.5) (0,1) 0.5 *Main> dot (1,0.5) (-1,2) 0.0
addVector :: Vector -> Vector
ตัวอย่างฟังก์ชัน addVector
*Main> addVector (1,2) (3,-4) (4,-2)
negVector :: Vector -> Vector -> Vector
ตัวอย่างฟังก์ชัน negVector
*Main> negVector (10,-5) (-10,5)