Haskell:
Tìm kiếm và thay thế văn bản
Làm thế nào:
Chúng ta hãy tìm kiếm và thay thế văn bản bằng Haskell. Chúng ta sẽ sử dụng Data.Text
cho việc xử lý văn bản Unicode và hiệu quả. Hãy chắc chắn nhập khẩu Data.Text
như sau:
import qualified Data.Text as T
Bây giờ, hãy thay thế tất cả các trường hợp của “hello” bằng “hi” trong một văn bản:
replaceText :: T.Text -> T.Text -> T.Text -> T.Text
replaceText old new = T.replace old new
main :: IO ()
main = do
let originalText = T.pack "hello world, hello Haskell!"
let newText = replaceText (T.pack "hello") (T.pack "hi") originalText
print newText -- "hi world, hi Haskell!"
Hàm replace
thực hiện phần nặng nhọc. Chúng tôi đã bao bọc nó trong replaceText
để làm rõ hơn.
Sâu hơn
Các hàm thay thế văn bản của Haskell như T.replace
được xây dựng trên khả năng xử lý mảng của Haskell. Nhìn lại, Haskell được tưởng tượng ra vào những năm ‘80, với trọng tâm vào lập trình chức năng. Paradigm này làm cho những thao tác như thay thế văn bản trở nên tinh tế và ít lỗi hơn do tính bất biến và hệ thống kiểu mạnh.
Đối với các phương án thay thế, bạn có thể tự lặp qua văn bản và thay thế các chuỗi con, nhưng điều đó sẽ gặp nhiều lỗi hơn và kém hiệu quả.
Thư viện Data.Text
sử dụng một biểu diễn nội bộ khác so với loại String
(chỉ là một danh sách các ký tự), làm cho nó phù hợp hơn cho các hoạt động văn bản quy mô lớn. Chính hàm T.replace
sử dụng các thuật toán hiệu quả cho việc tìm kiếm chuỗi, mang lại hiệu suất tốt ngay cả với văn bản lớn.
Xem thêm
Để tìm hiểu thêm về Data.Text
, hãy xem:
Cũng cân nhắc việc đọc rộng rãi hơn về việc điều chỉnh chuỗi trong Haskell: