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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 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

ลิสต์