Ai cũng vấp flatMap lần đầu — không phải vì nó khó, mà vì tài liệu định nghĩa sai chỗ
Đi từ tình huống chứ không từ định nghĩa: khi nào map cho ra thứ lồng nhau, ba lần thật cần flatMap, mẹo giữ ngữ cảnh cả hai tầng, và khác biệt filter với takeWhile mà kết quả tự nói ra.