Ứng Dụng Công Nghệ Stream Trong Các Trường Hợp Thực Tế
Bài viết này không chỉ cung cấp giải thích về lý thuyết mà còn minh họa qua các ví dụ mã thực tế cách ứng dụng Stream API để giải quyết các vấn đề lập trình phổ biến.
Trong quá trình phát triển hàng ngày, có nhiều tình huống như chuyển đổi đối tượng, loại bỏ trùng lặp danh sách liên kết, gọi dịch vụ theo từng批次, v.v. Việc triển khai các tình ...
Đăng vào ngày 30 tháng 6 lúc 02:43
Kỹ thuật lập trình trong Kotlin
Câu lệnh rỗng
Trong ngôn ngữ Kotlin, các câu lệnh trống có thể được biểu diễn bằng:
{}
Unit
when (x) {
1 -> ...
2 -> ...
else -> {}
// else -> Unit
}
Biểu thức when
Sử dụng biểu thức when không có điều kiện để thay thế các khối phân nhánh
val v = if (x < y) 1 else if (x == y) 2 else 3
val v = when {
x < ...
Đăng vào ngày 25 tháng 6 lúc 05:06
MonadState, State và StateT trong Haskell
Lớp kiểu MonadState
class Monad m => MonadState s m | m -> s where
layTrangThai :: m s
layTrangThai = trangThai (\s -> (s, s))
datTrangThai :: s -> m ()
datTrangThai s = trangThai (\_ -> ((), s))
trangThai :: (s -> (a, s)) -> m a
trangThai f = do
s <- layTrangThai
let ~(a, s') = f s
...
Đăng vào ngày 17 tháng 6 lúc 01:41
Ghi chú học ngôn ngữ Haskell (30): MonadCont, Cont, và ContT
Lớp kiểu MonadCont
class Monad m => MonadCont m where
callCC :: ((a -> m b) -> m a) -> m a
instance MonadCont (ContT r m) where
callCC = ContT.callCC
class Monad m => MonadCont m where
MonadCont là một lớp kiểu, nó định nghĩa giao diện chung cho các Monad như ContT đóng gói hàm CPS (Continuation Passing Style).
MonadCo ...
Đăng vào ngày 8 tháng 6 lúc 18:56
ghi chú học Haskell (98): Các hàm tạo thông minh
Hàm tạo thông minh
https://wiki.haskell.org/Smart_constructors
Hàm tạo thông minh là một kỹ thuật trong Haskell nhằm kiểm soát các tham số đầu vào khi khởi tạo một kiểu dữ liệu bằng cách ẩn đi các constructor mặc định và cung cấp các hàm đặc biệt để thực hiện việc xây dựng. Chúng có thể được phân loại thành hai nhóm: kiểm tra tại thời điểm chạy ...
Đăng vào ngày 5 tháng 6 lúc 23:44
Lambda và Lập trình hàm trong Java 8
Biểu thức Lambda
Cú pháp cơ bản của biểu thức Lambda: (parameters) -> expression hoặc (parameters) ->{ statements; }
() -> đại diện cho một biểu thức lambda
Mã đơn dòng không cần viết return (dù giao diện hàm có trả về giá trị hay không), dấu ngoặc nhọn
Mã nhiều dòng phải có dấu ngoặc nhọn, có giá trị trả về thì phải ghi rõ giá ...
Đăng vào ngày 25 tháng 5 lúc 07:15
Khái Niệm và Ví Dụ về Closure và Decorator trong Python
Closure
1. Tham chiếu hàm
def test1():
print("--- Trong hàm test1 ---")
# Gọi hàm
test1()
# Tham chiếu hàm
ret = test1
print(id(ret))
print(id(test1))
# Gọi hàm thông qua tham chiếu
ret()
Kết quả chạy:
--- Trong hàm test1 ---
140212571149040
140212571149040
--- Trong hàm test1 ---
2. Định nghĩa Closure
# Định nghĩa một hàm
de ...
Đăng vào ngày 17 tháng 5 lúc 10:48