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

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 15: แถว 15:
 
  mod 15 4
 
  mod 15 4
 
  `mod` 7
 
  `mod` 7
 +
 +
True
 +
True && (2 == 5)
 +
True || (2 == 5)
 +
(4 > 3) || (2 == 5)
 +
 +
:type 'a'
 +
:type "a"
 +
:type "hello"
 +
:type 10
 +
:type 20.5
 +
:type True
 +
:type (20 == 30)
  
 
== ตัวแปรใน ghci ==
 
== ตัวแปรใน ghci ==

รุ่นแก้ไขเมื่อ 07:52, 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
True
True && (2 == 5)
True || (2 == 5)
(4 > 3) || (2 == 5)
:type 'a'
:type "a"
:type "hello"
:type 10
:type 20.5
:type True
:type (20 == 30)

ตัวแปรใน 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

tuples และ lists

ข้อมูลพื้นฐานใน Haskell คือ tuples และ lists