Nội suy chuỗi ký tự

Haskell:
Nội suy chuỗi ký tự

Làm thế nào:

Trong Haskell, nội suy chuỗi không phải là tính năng sẵn có, nhưng với gói interpolate, bạn có thể tiếp cận rất gần với nó. Đầu tiên, đảm bảo bạn đã có gói này:

cabal update
cabal install interpolate

Bây giờ, viết một số Haskell:

{-# LANGUAGE QuasiQuotes #-}
import Data.String.Interpolate (i)

main :: IO ()
main = do
    let name = "world"
    let greeting = [i|Xin chào, #{name}!|]
    putStrLn greeting

Chạy nó:

Xin chào, thế giới!

Sâu hơn nữa

Trong lịch sử, Haskell không đi kèm với tính năng nội suy chuỗi ngay từ đầu. Đây là tính năng phổ biến hơn ở các ngôn ngữ kịch bản. Nội suy trong Haskell trở nên mượt mà hơn với sự phát triển của quasiquoters, cho phép bạn định nghĩa cú pháp tùy chỉnh của riêng mình—như i của chúng tôi dành cho nội suy chuỗi.

Có các phương án khác không? Chắc chắn, sử dụng printf từ Text.Printf, hoặc nối chuỗi và biến với ++. Nhưng những phương án này thiếu đi vẻ đẹp và sự đơn giản của nội suy.

Về mặt thực hiện, interpolate biến các chuỗi nội suy của bạn thành các chuỗi Haskell thông thường tại thời điểm biên dịch sử dụng Template Haskell, vì vậy không có sự chậm trễ nào khi chạy code của bạn. Nó thông minh và gọn gàng, giống như Haskell.

Xem thêm