ban luyen

Haskell

lo trinh thuc hanh de hoc Haskell tu con so 0

dinh nghia truoc

Haskell la gi

Haskell dung de viet chi dan chinh xac. O day ban hoc theo lo trinh thuc hanh de hoc Haskell tu con so 0. Hay bat dau voi mot mo hinh: dau vao qua cac buoc roi thanh dau ra.

thong tin chay toi thieutep Main.hschay runghc Main.hsthoi quen hoc mot phan nho cua Haskell, go vi du toi thieu roi chay
chuong trinh

tap hop lenh duoc chay theo thu tu.

gia tri va bien

gia tri la du lieu. bien la ten de giu du lieu.

ham

mot viec nho co ten, nhan dau vao va tao ket qua.

moi truong

GHC chay code trong Main.hs.

doan code dau tien

dau ra chuong trinh

entry point output syntax print
print 42
dau ra 42

pha he ngon ngu

cay pha he Haskell

xem Haskell den tu dau, gan voi ngon ngu nao, va nen hoc gi tiep.

goc
MLMirandaLambda calculus
hien taiHaskellho ham va logic
ho ngon nguho ham va logic
phu hop cho

phu hop cho lo trinh thuc hanh de hoc Haskell tu con so 0

tu con so 0

1doc mot quy tac2doan dau ra3go bang tri nho4chay kiem tra5lap lai voi mot thay doi

Ngan hang cau hoi

Tim truoc khi luyen

Chon giai doan hoac tim trong ngan hang cua ngon ngu nay roi mo bai tap.

18 ket qua
Q 1Lua chonGiai doan 1 dinh nghia

Haskell cau 1

Haskell cau 1. Chon mo ta phu hop nhat voi in mot gia tri.

Q 2Lua chonGiai doan 1 dinh nghia

Haskell cau 2

Haskell cau 2. Chon mo ta phu hop nhat voi dat ten cho gia tri.

Q 3Lua chonGiai doan 1 dinh nghia

Haskell cau 3

Haskell cau 3. Chon mo ta phu hop nhat voi ham tai su dung.

Q 4Lua chonGiai doan 1 dinh nghia

Haskell cau 4

Haskell cau 4. Chon mo ta phu hop nhat voi tap hop co ban.

Q 5Lua chonGiai doan 1 dinh nghia

Haskell cau 5

Haskell cau 5. Chon mo ta phu hop nhat voi in mot gia tri.

Q 6Lua chonGiai doan 1 dinh nghia

Haskell cau 6

Haskell cau 6. Chon mo ta phu hop nhat voi dat ten cho gia tri.

Q 7Lua chonGiai doan 1 dinh nghia

Haskell cau 7

Haskell cau 7. Chon mo ta phu hop nhat voi ham tai su dung.

Q 8Lua chonGiai doan 1 dinh nghia

Haskell cau 8

Haskell cau 8. Chon mo ta phu hop nhat voi tap hop co ban.

Q 9Lua chonGiai doan 1 dinh nghia

Haskell cau 9

Haskell cau 9. Chon mo ta phu hop nhat voi in mot gia tri.

Q 10Lua chonGiai doan 1 dinh nghia

Haskell cau 10

Haskell cau 10. Chon mo ta phu hop nhat voi dat ten cho gia tri.

Q 11Lua chonGiai doan 1 dinh nghia

Haskell cau 11

Haskell cau 11. Chon mo ta phu hop nhat voi ham tai su dung.

Q 12Lua chonGiai doan 1 dinh nghia

Haskell cau 12

Haskell cau 12. Chon mo ta phu hop nhat voi tap hop co ban.

Q 13Lua chonGiai doan 1 dinh nghia

Haskell cau 13

Haskell cau 13. Chon mo ta phu hop nhat voi in mot gia tri.

Q 14Lua chonGiai doan 1 dinh nghia

Haskell cau 14

Haskell cau 14. Chon mo ta phu hop nhat voi dat ten cho gia tri.

Q 15Lua chonGiai doan 1 dinh nghia

Haskell cau 15

Haskell cau 15. Chon mo ta phu hop nhat voi ham tai su dung.

Q 16Lua chonGiai doan 1 dinh nghia

Haskell cau 16

Haskell cau 16. Chon mo ta phu hop nhat voi tap hop co ban.

Q 17Lua chonGiai doan 1 dinh nghia

Haskell cau 17

Haskell cau 17. Chon mo ta phu hop nhat voi in mot gia tri.

Q 18Lua chonGiai doan 1 dinh nghia

Haskell cau 18

Haskell cau 18. Chon mo ta phu hop nhat voi dat ten cho gia tri.

trac nghiem

Haskell cau 1

Q 1Lua chonmoi

Haskell cau 1. Chon mo ta phu hop nhat voi in mot gia tri.

print 42

tham khao

mau cho Main.hs

GHCrunghc Main.hs
nho laidoc mot y nho roi viet lai ma khong nhin
lan theo codeghi gia tri bien tung dong truoc khi chay
tu goit copy hon go nhieu hon va sua mot loi nho

entry point output syntax print

dau ra chuong trinh

print 42
  • Run the smallest file first
  • Print one known value
  • Check the output before adding more code

variables assignment types let

gia tri va ten

let total = 42
print total
  • Give values readable names
  • Keep one idea per line while learning
  • Trace the value before changing it

function collection List

ham va tap hop

add :: Int -> Int -> Int
add a b = a + b

let scores = [40, 2]
print (length scores)
  • Keep functions small
  • Return useful values
  • Use the common collection before reaching for frameworks