ผลต่างระหว่างรุ่นของ "01204435/haskell2"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 11: แถว 11:
  
 
จริง ๆ แล้ว Haskell มีไลบรารีเกี่ยวกับเวกเตอร์ (ดู [http://www.haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial]) แต่เราจะเขียนเองเพื่อความง่ายและสะดวก
 
จริง ๆ แล้ว Haskell มีไลบรารีเกี่ยวกับเวกเตอร์ (ดู [http://www.haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial]) แต่เราจะเขียนเองเพื่อความง่ายและสะดวก
 +
 +
ด้านล่างเป็น type ของฟังก์ชัน dot (คำนวณ dot product), addVector และ negVector และตัวอย่าง
 +
 +
dot :: Vector -> Vector -> Double
 +
 +
ตัวอย่าง
 +
 +
*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 -> Vector
 +
 +
*Main> addVector (1,2) (3,-4)
 +
(4,-2)
 +
 +
negVector :: Vector -> Vector -> Vector
 +
 +
*Main> negVector (10,-5)
 +
(-10,5)

รุ่นแก้ไขเมื่อ 08:35, 4 กรกฎาคม 2556

เราจะอิมพลีเมนท์ Perceptron algorithm แบบง่าย (ข้อมูลมี 2 มิติ) บน Haskell

เราจะนิยามชนิดข้อมูล Vector เพื่อความสะดวกต่อไป

type Vector = (Double, Double)

ฟังก์ชันเกี่ยวกับเวกเตอร์

จริง ๆ แล้ว Haskell มีไลบรารีเกี่ยวกับเวกเตอร์ (ดู [1]) แต่เราจะเขียนเองเพื่อความง่ายและสะดวก

ด้านล่างเป็น type ของฟังก์ชัน dot (คำนวณ dot product), addVector และ negVector และตัวอย่าง

dot :: Vector -> Vector -> Double

ตัวอย่าง

*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 -> Vector
*Main> addVector (1,2) (3,-4)
(4,-2)
negVector :: Vector -> Vector -> Vector
*Main> negVector (10,-5)
(-10,5)