ผลต่างระหว่างรุ่นของ "01204435/haskell1"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (→ตัวแปร) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 27: | แถว 27: | ||
== ฟังก์ชัน == | == ฟังก์ชัน == | ||
+ | |||
+ | เราไม่สามารถนิยามฟังก์ชันภายใน ghci ได้ เราต้องสร้างแฟ้มภายนอก (โดยมากนิยมใช้นามสกุล .hs) สร้างแฟ้ม htest1.hs โดยใส่นิยามของฟังก์ชันสองฟังก์ชันดังนี้ | ||
+ | |||
+ | add x y = x + y | ||
+ | |||
+ | double x = add x x | ||
+ | |||
+ | ใน ghci เราสามารถโหลดนิยามของฟังก์ชันได้ โดยสั่ง | ||
+ | |||
+ | :load htest1 | ||
+ | |||
+ | จะเห็นว่า prompt เปลี่ยนจาก Prelude เป็น Main (แทนชื่อโมดูลที่เราทำงานอยู่) | ||
+ | |||
+ | ถ้าเรามีการแก้ไขไฟล์ และต้องการโหลดใหม่ ให้สั่ง | ||
+ | |||
+ | :reload | ||
+ | |||
+ | เราสามารถทดลอง | ||
+ | |||
+ | add 10 20 | ||
+ | 10 `add` 40 | ||
+ | let f = add 100 | ||
+ | f 20 | ||
+ | let g = double | ||
+ | g 50 | ||
+ | |||
+ | เพิ่มนิยามของสองฟังก์ชันนี้เข้าไป และทดลอง ฟังก์ชันทั้งสองต่างกันอย่างไร | ||
+ | |||
+ | fun1 x = add x (x * 10) | ||
+ | fun2 x = add x x * 10 | ||
== ลิสต์ == | == ลิสต์ == |
รุ่นแก้ไขเมื่อ 07:35, 18 มิถุนายน 2556
หน้านี้เป็นส่วนหนึ่งของรายวิชา 01204435 ภาคต้น 2556
ทดลองทั่วไป
เรียก ghci แล้วทดลองคำสั่งทั่วไปดังนี้ (ทดลองพิมพ์ไปตามลำดับ)
1 + 2 1 / 5 5 * 10 5 ^ 2
div 20 4 div 20 3 25 `div` 7 mod 15 4 `mod` 7
ตัวแปรใน ghci
ใน ghci เราสามารถกำหนดตัวแปรเพื่อแทนค่าบางค่าได้ โดยใช้คำสั่ง let
let x = 10 x * 10 let y = 20 x * y let x = 100 in let y = 20 in x * y
ฟังก์ชัน
เราไม่สามารถนิยามฟังก์ชันภายใน ghci ได้ เราต้องสร้างแฟ้มภายนอก (โดยมากนิยมใช้นามสกุล .hs) สร้างแฟ้ม htest1.hs โดยใส่นิยามของฟังก์ชันสองฟังก์ชันดังนี้
add x y = x + y double x = add x x
ใน ghci เราสามารถโหลดนิยามของฟังก์ชันได้ โดยสั่ง
:load htest1
จะเห็นว่า prompt เปลี่ยนจาก Prelude เป็น Main (แทนชื่อโมดูลที่เราทำงานอยู่)
ถ้าเรามีการแก้ไขไฟล์ และต้องการโหลดใหม่ ให้สั่ง
:reload
เราสามารถทดลอง
add 10 20 10 `add` 40 let f = add 100 f 20 let g = double g 50
เพิ่มนิยามของสองฟังก์ชันนี้เข้าไป และทดลอง ฟังก์ชันทั้งสองต่างกันอย่างไร
fun1 x = add x (x * 10) fun2 x = add x x * 10