ในภาษา Haskell, คุณสามารถทำให้สตริงเป็นตัวพิมพ์ใหญ่ได้โดยใช้ไลบรารีมาตรฐานโดยไม่ต้องใช้ไลบรารีของบุคคลที่สาม.
Haskell ทำให้การต่อเชือกข้อความเป็นเรื่องง่ายด้วยตัวดำเนินการ (++).
(++)
Haskell ใช้โมดูล Data.Char เพื่อจัดการกับอักขระ ฟังก์ชัน toLower เป็นตัวเปลี่ยนอักขระเดียวให้เป็นตัวพิมพ์เล็กโดยเฉพาะ คุณจะทำการ map ฟังก์ชันนี้เข้ากับสตริงเพื่อแปลงให้เป็นตัวพิมพ์เล็กทั้งหมด ดูโค้ดด้านล่าง.
Data.Char
ฟังก์ชัน toLower
Haskell มีชุดไลบรารีที่หลากหลาย เช่น ‘Data.List’, ให้เครื่องมือต่างๆ สำหรับการจัดการกับรายการ ซึ่งสตริงเป็นกรณีพิเศษของรายการ ในประวัติศาสตร์, การจับคู่พาเทิร์นของ Haskell เป็นแนวคิดที่ยืมมาจากภาษาฟังก์ชั่นเก่าๆ เช่น ML มีวิธีการจับคู่พาเทิร์นที่แตกต่างกันใน Haskell ฟังก์ชั่น removePattern ของเราง่ายๆ ใช้ isInfixOf เพื่อตรวจสอบพาเทิร์น นอกจากนี้ยังมีไลบรารี regex สำหรับพาเทิร์นที่ซับซ้อน แต่พวกมันเพิ่มการพึ่งพาและบางครั้งทำให้สิ่งต่างๆ ซับซ้อนเกินไป พูดถึงการพึ่งพา, สำหรับการตัดช่องว่าง, คุณอาจนำเข้าไลบรารีภายนอก แต่ฟังก์ชั่น ’trim’ ของเราทำงานได้โดยใช้เนทีฟ สุดท้าย, ในแง่ของประสิทธิภาพ, ควรระมัดระวังกับฟังก์ชั่นเรียกตัวเองใน Haskell; มันสามารถไม่มีประสิทธิภาพได้หากไม่ได้รับการปรับให้เหมาะสมโดยคอมไพเลอร์ ธังก์สามารถสะสมกันได้ ทำให้เกิดการรั่วไหลของหน่วยความจำ สำหรับประสิทธิภาพที่ดีขึ้น คุณอาจสำรวจโมดูล Text ของ Haskell สำหรับการจัดการสตริงขนาดใหญ่หรือจำนวนมาก.
removePattern
isInfixOf
Text
ใน Haskell, คุณสามารถตัดและแยกสตริงด้วยฟังก์ชันที่มีอยู่แล้วในตัวอย่างเช่น take, drop, และ substring (จาก Data.Text).
take
drop
substring
Data.Text
Haskell เป็นภาษาที่มีลักษณะเป็น function ล้วน ที่สตริงถูกแสดงเป็นรายการของอักขระ ฟังก์ชั่น length, ซึ่งเป็นส่วนหนึ่งของ Prelude (ไลบรารีเริ่มต้นที่ถูกนำเข้าไปในทุกโปรแกรม Haskell), ดำเนินการภายใต้การแสดงนี้ ในอดีต, สตริงเป็นรายการถูกเลือกโดยธรรมชาติสำหรับ Haskell เนื่องจากความเรียบง่ายและความจริงที่ว่าภาษา Lisp เลือกการออกแบบที่คล้ายกัน (และมีอิทธิพลต่อภาษาฟังก์ชั่นหลายๆ ภาษา) ฟังก์ชั่น length นั้นเพียงแค่นับองค์ประกอบในรายการนี้ อย่างไรก็ตาม, length เป็น O(n), หมายความว่าฟังก์ชั่นจะใช้เวลาที่สัมพันธ์กับความยาวของสตริง นี่ไม่ใช่ปัญหาสำหรับสตริงสั้นๆ แต่สำหรับสตริงยาวๆ, มันอาจไม่มีประสิทธิภาพ ทางเลือกอื่น ๆ ได้แก่.
length
ใน Haskell, การแทรกตัวแปรลงในสตริงไม่ได้เป็นส่วนหนึ่งมาแต่ต้น แต่ด้วยแพ็คเกจ interpolate คุณสามารถทำได้เกือบเหมือนกัน ก่อนอื่น, ตรวจสอบว่าคุณมีแพ็คเกจ.
interpolate
ใน Haskell, เราสามารถสร้างฟังก์ชันที่ลบเครื่องหมายอัญประกาศทั้งหมดออกจากสตริงที่กำหนดได้ มันเหมือนกับบอกให้เครื่องหมายอัญประกาศหยุดกวน และตรวจสอบให้แน่ใจว่าพวกมันรับรู้ถึงเบาะแส.
มาค้นหาและแทนที่ข้อความโดยใช้ Haskell กัน เราจะใช้ Data.Text สำหรับการจัดการข้อความ Unicode และเพื่อประสิทธิภาพ ตรวจสอบให้แน่ใจว่าได้นำเข้า Data.Text ดังนี้.
ใน Haskell, ฟังก์ชันการทำงานของ regex ไม่ได้เป็นส่วนหนึ่งของไลบรารีมาตรฐาน ซึ่งจำเป็นต้องใช้แพ็กเกจของบุคคลที่สาม เช่น regex-base ร่วมกับแบ็กเอ็นด์ที่เข้ากันได้ เช่น regex-posix (สำหรับการสนับสนุน regex POSIX), regex-pcre (สำหรับ regex ที่เข้ากันได้กับ Perl), ฯลฯ นี่คือวิธีที่คุณสามารถใช้แพ็กเกจเหล่านี้เพื่อทำงานกับนิพจน์ปรกติ เริ่มแรก, ตรวจสอบให้แน่ใจว่าคุณมีแพ็กเกจที่ติดตั้งโดยการเพิ่ม regex-posix หรือ regex-pcre ไปยังไฟล์ .cabal ของโปรเจกต์ หรือการติดตั้งผ่าน cabal โดยตรง.
regex-base
regex-posix
regex-pcre
.cabal