GIỚI THIỆU
Chúng tôi đang dịch thuyết minh bài giảng sang tiếng Việt
Dưới đây là những điều bạn cần biết về khóa học này.
Khóa học này được thiết kế để dạy cho những người muốn tìm hiểu Haskell từ con số 0 đến mọi thứ cần thiết để làm việc với Marlowe và Plutus. Tuy nhiên, khóa học không có nội dung dành riêng cho Marlowe hoặc Plutus.Nhưng nếu bạn muốn học Haskell để có thể sử dụng Marlowe và Plutus tốt hơn thì đây chính là khóa học dành cho bạn.
A. MỤC LỤC bài giảng
- Giới thiệu khóa học và bài giảng
- Những gì chúng ta sẽ học
- Cấu trúc kho lưu trữ
- Giới thiệu về Haskell
- Cách mở và sử dụng JupyterLab
- Ngôn ngữ lập trình Hàm thuần túy
- Cú pháp cơ bản
- Hệ thống Kiểu Haskell
- Laziness (Lười biếng là gì?)
- GHC (và GHCi)
- GitPod
- Cách mở và sử dụng GitPod
- Ví dụ về cách hoàn thành bài tập về nhà.
- Giới thiệu ứng dụng thực tế của kiểu
- Khai báo Kiểu
- Khai báo (Signatures) của Hàm
- Biến trong Haskell
- Các tham số trong hàm
- Tên/Định nghĩa
- Hàm trung tố và tiền tố
- Kiểu dữ liệu (Data types) chuyên sâu
- Int, Integer
- Float, Double
- Rational
- Bool
- Char
- Lists
- Strings
- Tuples + Tuples VS Lists
- Giá trị đa hình (Polymorphism) và biến kiểu
- If-then-else
- Guards
- Biểu thức
let
where
- Nên sử dụng
let
haywhere
? - Những điều cần lưu ý
- Khớp mẫu (pattern matching) là gì
- Khớp mẫu đang bật
- Triển khai Hàm
- Danh sách (Lists)
- Bộ dữ liệu (Tuples)
- Case
- Các hàm bậc cao
- Hàm
filter
- Hàm
any
- Hàm
- Hàm Lambda ()
- Ưu tiên và tính kết hợp
- Hàm Curried
- Áp dụng một phần
- Soạn thảo và áp dụng các Hàm
- Toán tử
$
- Toán tử
.
- Toán tử
- Point-free style
- Tại sao lại cần Đệ quy (Recursion)?
- Tư duy Đệ quy
sum
Vàproduct
- Các bước để tạo hàm Đệ quy của riêng bạn
- Ví dụ về Đệ quy
and
,length
,reverse
,drop
,take
,map
,filter
- Trích xuất
foldr
mẫu - Hàm
foldl
- Hàm
foldl'
- Khi nào thì sử dụng
foldr
,foldl
, vàfoldl'
- Sự tuyệt vời của Type Classes (lớp của kiểu)
- Type Classes là gì?
- Các Type Classes phổ biến
Eq
,Ord
Num
,Integral
,Floating
Read
,Show
- Kiểu hợp lệ chung nhất
- Nhiều ràng buộc
- Kiểu đồng nghĩa
- Cách Định nghĩa Kiểu đồng nghĩa
- Tại sao sử dụng Kiểu đồng nghĩa
- Định nghĩa kiểu mới
- Tạo kiểu mới với
data
- Sử dụng kiểu mới
- Tham số giá trị
- Tạo kiểu mới với
- Cú pháp bản ghi
- Kiểu tham số
- Tham số hóa kiểu đồng nghĩa (Type synonyms)
- Tham số hóa kiểu
data
- Kiểu dữ liệu Đệ quy
- Ví dụ với
Tweet
- Ví dụ với
Sequence
củaNode
- Ví dụ với
Tree
củaNode
- Ví dụ với
- Kinds (Loại)
- Từ khóa
newType
- Overloading
- Các bước để tạo Type Classes và các trường hợp
- Lớp kiểu
Eq
- Định nghĩa Lớp Kiểu (Type Class)
- Định nghĩa đa trường hợp
- Hoàn thiện Lớp Kiểu
Eq
với Đệ quy (và Định nghĩa đầy đủ tối thiểu) - Định nghĩa một trường hợp cho một Kiểu tham số.
- Lớp kiểu
WeAccept
- Lớp kiểu
Container
- Khám phá Lớp Kiểu
Ord
(Lớp phụ con) - Deriving
- Deriving có thể sai
- Hàm thuần túy
- Giới thiệu về các hành động IO (IO actions)
- Hiểu về IO actions
- IO actions trong thực tế
- Kiểu
()
- Kiểu
- Tương tác với người dùng
getChar
,getLine
, vàputStrLn
- Hành động là giá trị hàng đầu
- Chuỗi các hành động IO ( toán tử
>>
và toán tử>>=
) - Khối
do
- Sử dụng
let
, lồngdo-blocks
, thoátIO
vàreturn
- Sử dụng
main
- Khái niệm và tóm tắt cú pháp
- Giới thiệu
- Ứng dụng/tiện ích mở rộng
- Tổng quan về các mô-đun cơ sở
- Nhập mô-đun cơ sở
- Một vài mô-đun
- Data.Char
- Data.Tuple
- Data.Array
- Tạo các mô-đun của riêng chúng ta
- Cabal
- Nó là gì và tại sao chúng ta sử dụng nó
- Tập tin cabal
- Sử dụng các thư viện bên ngoài cùng với Cabal
- Nhóm bit và byte
- Haskell và byte
- Chuỗi byte lười biếng và nghiêm ngặt
- Ví dụ
- TODO
- Sử dụng GHCi để tìm hiểu thêm
- Hoogle
- HaskellWiki
- Tìm hiểu nhanh mô-đun Map
B. Hướng dẫn để làm bài tập về nhà
- Sao chép kho lưu trữ này.
- Tạo một tài khoản GitPod .
- Nhấp vào nút này để tạo môi trường phát triển từ xa:
- Chọn
Homework/HomeworkXX
thư mục có bài tập về nhà mà bạn muốn hoàn thành. - Thực hiện theo các hướng dẫn bên trong tệp
Homework.hs
hoặcMain.hs
. - Kiểm tra các giải pháp trong
solutions
branch!
C. Kênh thảo luận
D.Tài liệu tóm tắt