Haskell:
การค้นหาและแทนที่ข้อความ
วิธีการ:
มาค้นหาและแทนที่ข้อความโดยใช้ Haskell กัน เราจะใช้ Data.Text
สำหรับการจัดการข้อความ Unicode และเพื่อประสิทธิภาพ ตรวจสอบให้แน่ใจว่าได้นำเข้า Data.Text
ดังนี้:
import qualified Data.Text as T
ตอนนี้, มาแทนที่ทุกตัวอย่างของ “hello” ด้วย “hi” ในข้อความ:
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!"
ฟังก์ชัน replace
ทำงานหนัก ได้ทำการหุ้มมันใน replaceText
เพื่อความชัดเจน
ขุดลึก
ฟังก์ชันการแทนที่ข้อความของ Haskell เช่น T.replace
นั้นสร้างขึ้นบนความสามารถในการประมวลผลอาร์เรย์ของ Haskell. ย้อนกลับไป Haskell ถูกสร้างขึ้นในยุค 80 กับการเน้นการเขียนโปรแกรมแบบฟังก์ชัน ซึ่งทำให้การดำเนินการเช่นการแทนที่ข้อความมีความสง่างามและมีข้อผิดพลาดน้อยลงเนื่องจากความไม่เปลี่ยนแปลงและระบบประเภทที่แข็งแรง
จากทางเลือกอื่น, คุณอาจได้ทำการวนซ้ำผ่านข้อความและแทนที่ย่อยด้วยตนเอง แต่นั่นมีโอกาสผิดพลาดมากขึ้นและไม่มีประสิทธิภาพ
ไลบรารี Data.Text
ใช้การแทนตัวแรกที่ต่างกันจากประเภท String
(ซึ่งเป็นเพียงรายการของอักขระ), ทำให้มันเหมาะสมกว่าสำหรับการดำเนินการข้อความขนาดใหญ่ ฟังก์ชัน T.replace
เองใช้อัลกอริทึมที่มีประสิทธิภาพสำหรับการค้นหาสตริง ซึ่งให้ประสิทธิภาพที่ดียาวนานแม้กระทั่งสำหรับข้อความขนาดใหญ่
ดูด้วย
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Data.Text
, ตรวจสอบที่:
ยังสามารถพิจารณาการอ่านเพิ่มเติมเกี่ยวกับการจัดการสตริงของ Haskell: