การค้นหาและแทนที่ข้อความ

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: