RE#: របៀបដែលយើងបង្កើតម៉ាស៊ីន regex លឿនបំផុតក្នុង F#
មតិយោបល់
Mewayz Team
Editorial Team
បញ្ចេញល្បឿនដែលមិនអាចប្រៀបផ្ទឹមបាន៖ ទស្សនវិជ្ជានៅពីក្រោយ RE#
នៅក្នុងពិភពនៃការអភិវឌ្ឍន៍កម្មវិធី កន្សោមធម្មតាគឺជាឧបករណ៍មូលដ្ឋានសម្រាប់ញែក និងផ្ទៀងផ្ទាត់អត្ថបទ។ ទោះយ៉ាងណាក៏ដោយ ដូចដែលអ្នកអភិវឌ្ឍន៍ណាមួយដឹង regex ដែលត្រូវបានធ្វើឱ្យប្រសើរមិនល្អអាចក្លាយជាឧបសគ្គនៃដំណើរការដ៏សំខាន់ ធ្វើឱ្យដំណើរការទិន្នន័យយឺត និងប៉ះពាល់ដល់បទពិសោធន៍អ្នកប្រើប្រាស់។ នៅ Mewayz ជាកន្លែងដែលប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មម៉ូឌុលរបស់យើងត្រូវបានរចនាឡើងដើម្បីគ្រប់គ្រងលំហូរការងាររបស់សហគ្រាសស្មុគស្មាញប្រកបដោយប្រសិទ្ធភាពអតិបរមា យើងមិនអាចមានលទ្ធភាពក្នុងការរារាំងបែបនេះបានទេ។ យើងត្រូវការម៉ាស៊ីន regex ដែលមិនត្រឹមតែមានថាមពលខ្លាំងប៉ុណ្ណោះទេ ថែមទាំងមានល្បឿនលឿនទៀតផង។ នេះបាននាំយើងឱ្យធ្វើដំណើរដើម្បីបង្កើត RE# ដែលជាម៉ាស៊ីន regex ដំណើរការខ្ពស់ដែលបានសរសេរទាំងស្រុងនៅក្នុង F# ។ គោលដៅរបស់យើងគឺដើម្បីប្រើប្រាស់គំរូមុខងារទីមួយនៃ F# ដើម្បីបង្កើតដំណោះស្រាយដែលដំណើរការលើសពីបណ្ណាល័យ C++ ដែលបានធ្វើឱ្យប្រសើរយ៉ាងខ្លាំង ហើយយើងបានទទួលជោគជ័យ។
ហេតុអ្វី F# សម្រាប់ម៉ាស៊ីន Regex?
ជម្រើសនៃ F# មានចេតនា និងជាយុទ្ធសាស្ត្រ។ ខណៈពេលដែលភាសាដូចជា C ឬ C ++ ច្រើនតែជាលំនាំដើមសម្រាប់កូដសំខាន់នៃការអនុវត្ត យើងជឿថាលក្ខណៈពិសេសរបស់ F# គឺសមឥតខ្ចោះសម្រាប់ការគ្រប់គ្រងរដ្ឋដ៏ស្មុគស្មាញដែលមាននៅក្នុងការវាយតម្លៃ regex ។ ការផ្គូផ្គងគំរូដ៏មានអានុភាពរបស់វា ភាពមិនអាចប្រែប្រួលតាមលំនាំដើម និងប្រព័ន្ធប្រភេទនៃការបញ្ចេញមតិបានអនុញ្ញាតឱ្យយើងធ្វើគំរូនៃដែនបញ្ហាដោយធម្មជាតិ និងមានចន្លោះតិចសម្រាប់កំហុស។ ជំនួសឱ្យការប្រយុទ្ធជាមួយនឹងការគ្រប់គ្រងអង្គចងចាំដោយដៃ និងតក្កវិជ្ជាទ្រនិចស្មុគ្រស្មាញ យើងអាចផ្តោតលើក្បួនដោះស្រាយស្នូល។ នេះតម្រឹមយ៉ាងល្អឥតខ្ចោះជាមួយនឹងទស្សនវិជ្ជារបស់ Mewayz នៃការកសាងម៉ូឌុលដែលរឹងមាំ រក្សាបាន និងដំណើរការខ្ពស់ដែលបង្កើតបានជាឆ្អឹងខ្នងនៃប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មដែលអាចទុកចិត្តបាន។ F# បានផ្តល់អំណាចដល់យើងក្នុងការសរសេរកូដដែលលឿន និងត្រឹមត្រូវ។
ស្ថាបត្យកម្មសម្រាប់ការអនុវត្ត៖ ពី NFA ដល់ការប្រតិបត្តិចងក្រង
នៅស្នូលរបស់វា ម៉ាស៊ីន regex ភាគច្រើនត្រូវបានបង្កើតឡើងនៅលើ Non-deterministic Finite Automaton (NFA)។ បញ្ហាប្រឈមស្ថិតនៅក្នុងរបៀបដែលអ្នកក្លែងធ្វើស្វ័យប្រវត្តិកម្មនេះ។ ម៉ាស៊ីនបែបបុរាណតែងតែប្រើគំរូអ្នកបកប្រែ ដែលដើរ NFA មួយជំហានម្តងៗសម្រាប់តួអក្សរបញ្ចូលនីមួយៗ។ RE# ប្រើវិធីសាស្រ្តកាន់តែចាស់ទុំខុសគ្នា៖ យើងចងក្រងលំនាំ regex ដោយផ្ទាល់ទៅក្នុងមុខងារ F# ឯកទេសនៅពេលដំណើរការ។ ដំណើរការនេះ ត្រូវបានគេស្គាល់ថាជាការចងក្រង Just-in-Time (JIT) បំប្លែងលំនាំអរូបីទៅជាកូដ .NET Intermediate Language (IL) ដែលបានធ្វើឱ្យប្រសើរខ្ពស់។ លទ្ធផលគឺថាការផ្គូផ្គងខ្សែអក្សរលែងជាប់ពាក់ព័ន្ធនឹងការបកស្រាយរចនាសម្ព័ន្ធក្រាហ្វ ប៉ុន្តែជាការអនុវត្តមុខងារកាត់ដេរដែលអនុវត្តការត្រួតពិនិត្យនៅក្នុងរង្វិលជុំតឹង។ សមាសធាតុសំខាន់ៗនៃស្ថាបត្យកម្មរបស់យើងរួមមាន:
- ការបំបែកលំនាំ៖ ការបំបែកលំនាំ regex ទៅជាមែកធាងវាក្យសម្ព័ន្ធអរូបី (AST) ដែលមានរចនាសម្ព័ន្ធ។
- ការបង្កើតកូដ IL៖ បញ្ចេញថាមវន្តការណែនាំ IL ដែលបានធ្វើឱ្យប្រសើរដែលតំណាងឱ្យតក្កវិជ្ជាដែលត្រូវគ្នា។
- Cache-Friendly Design: រក្សាទុកមុខងារដែលបានចងក្រងទុកយ៉ាងធ្ងន់ធ្ងរ ដើម្បីជៀសវាងការចងក្រងឡើងវិញសម្រាប់គំរូដែលប្រើញឹកញាប់។
- Zero-Overhead Backtracking៖ អនុវត្តការតាមដានដែលបានគ្រប់គ្រងដោយប្រើមុខងារដដែលៗដែលមានប្រសិទ្ធភាពរបស់ F# និងការបង្កើនប្រសិទ្ធភាពការហៅតាមកន្ទុយ។
ជំហាននៃការចងក្រងនេះគឺជាហេតុផលចម្បងដែល RE# សម្រេចបាននូវល្បឿនគួរឱ្យកត់សម្គាល់របស់វា ដែលជារឿយៗកាត់បន្ថយពេលវេលាដែលត្រូវគ្នាទៅនឹងកម្រិតប្រតិបត្តិជិតដើម។
"ដោយការចងក្រងលំនាំ regex ទៅក្នុង IL ដែលបានបង្កើនប្រសិទ្ធភាព យើងលុបបំបាត់អ្នកបកប្រែយ៉ាងមានប្រសិទ្ធភាព ដែលអនុញ្ញាតឱ្យ RE# ដំណើរការម៉ាស៊ីនដែលសរសេរជាភាសាកម្រិតទាប។ វាជាសក្ខីភាពមួយចំពោះថាមពលនៃសមត្ថភាពកម្មវិធីមេតារបស់ F#។" - វិស្វករនាំមុខ ក្រុម Mewayz Core
ការរួមបញ្ចូល និងផលប៉ះពាល់នៅក្នុង Mewayz OS
ការអភិវឌ្ឍន៍ RE# មិនមែនជាលំហាត់សិក្សាទេ។ វាត្រូវបានជំរុញដោយតម្រូវការពិភពលោកពិតនៃវេទិកា Mewayz ។ ប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មរបស់យើងពឹងផ្អែកលើការដំណើរការទិន្នន័យរហ័សសម្រាប់អ្វីៗគ្រប់យ៉ាងចាប់ពីការវិភាគតាមពេលវេលាជាក់ស្តែង និងការវិភាគកំណត់ហេតុ ដល់ការផ្ទៀងផ្ទាត់ការបញ្ចូលរបស់អ្នកប្រើប្រាស់ និងការបំប្លែងស្ទ្រីមទិន្នន័យ។ មុនពេល RE# យើងបានជួបប្រទះបញ្ហាដំណើរការនៅក្នុងម៉ូឌុលដែលទទួលខុសត្រូវចំពោះការបញ្ចូលទិន្នន័យ និងសុពលភាព។ ដោយការរួមបញ្ចូល RE# ជាម៉ាស៊ីន regex លំនាំដើមនៅទូទាំង Mewayz OS យើងបានឃើញការកែលម្អភ្លាមៗ និងយ៉ាងខ្លាំង។ បំពង់ដំណើរការទិន្នន័យដែលធ្លាប់ជួបការលំបាកក្រោមបន្ទុកធ្ងន់ ឥឡូវនេះដំណើរការយ៉ាងរលូន ដោយធានាថាអតិថិជនរបស់យើងអាចបង្កើត និងដំណើរការកម្មវិធីស្មុគស្មាញ និងប្រើប្រាស់ទិន្នន័យដោយមិនបារម្ភអំពីការពន្យារពេលដំណើរការអត្ថបទ។ ការជំរុញការអនុវត្តនេះធ្វើឱ្យប្រព័ន្ធអេកូឡូស៊ីទាំងមូលប្រសើរឡើង ដោយធ្វើឱ្យគ្រប់ម៉ូឌុលដែលពឹងផ្អែកលើការរៀបចំអត្ថបទកាន់តែឆ្លើយតប និងអាចធ្វើមាត្រដ្ឋានបាន។
💡 DID YOU KNOW?
Mewayz replaces 8+ business tools in one platform
CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.
Start Free →សេចក្តីសន្និដ្ឋាន៖ មូលនិធិសម្រាប់ការច្នៃប្រឌិតនាពេលអនាគត
ការកសាងម៉ាស៊ីន regex លឿនបំផុតនៅក្នុង F# គឺជាសមិទ្ធិផលដ៏សំខាន់ដែលបញ្ជាក់ពីការប្តេជ្ញាចិត្តរបស់ Mewayz ចំពោះឧត្តមភាពបច្ចេកទេស។ RE# បង្ហាញថាការជ្រើសរើសភាសាដូចជា F# សម្រាប់ ergonomics អ្នកអភិវឌ្ឍន៍ មិនមែនមានន័យថាការលះបង់ការអនុវត្តនោះទេ។ តាមពិតទៅ វាអាចជាគន្លឹះក្នុងការដោះសោវាបាន។ ភាពជោគជ័យនៃគម្រោងនេះផ្តល់នូវមូលដ្ឋានគ្រឹះដ៏រឹងមាំសម្រាប់ម៉ូឌុលនាពេលអនាគតនៅក្នុង Mewayz OS ដោយធានាថានៅពេលដែលយើងបន្ថែមមុខងារដ៏មានឥទ្ធិពលបន្ថែមទៀតសម្រាប់ស្វ័យប្រវត្តិកម្មលំហូរការងារ និងការវិភាគទិន្នន័យ សមត្ថភាពដំណើរការអត្ថបទស្នូលរបស់យើងនឹងមិនជាកត្តាកំណត់នោះទេ។ យើងបានបង្កើតម៉ាស៊ីនដែលមិនគ្រាន់តែលឿនសម្រាប់ថ្ងៃនេះប៉ុណ្ណោះទេ ប៉ុន្តែបានបង្កើតស្ថាបត្យកម្មដើម្បីដោះស្រាយបញ្ហាប្រឈមទិន្នន័យដែលទាមទារសម្រាប់ថ្ងៃស្អែក។
សំណួរដែលគេសួរញឹកញាប់
បញ្ចេញល្បឿនដែលមិនអាចប្រៀបផ្ទឹមបាន៖ ទស្សនវិជ្ជានៅពីក្រោយ RE#
នៅក្នុងពិភពនៃការអភិវឌ្ឍន៍កម្មវិធី កន្សោមធម្មតាគឺជាឧបករណ៍មូលដ្ឋានសម្រាប់ញែក និងផ្ទៀងផ្ទាត់អត្ថបទ។ ទោះយ៉ាងណាក៏ដោយ ដូចដែលអ្នកអភិវឌ្ឍន៍ណាមួយដឹង regex ដែលត្រូវបានធ្វើឱ្យប្រសើរមិនល្អអាចក្លាយជាឧបសគ្គនៃដំណើរការដ៏សំខាន់ ធ្វើឱ្យដំណើរការទិន្នន័យយឺត និងប៉ះពាល់ដល់បទពិសោធន៍អ្នកប្រើប្រាស់។ នៅ Mewayz ជាកន្លែងដែលប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មម៉ូឌុលរបស់យើងត្រូវបានរចនាឡើងដើម្បីគ្រប់គ្រងលំហូរការងាររបស់សហគ្រាសស្មុគស្មាញប្រកបដោយប្រសិទ្ធភាពអតិបរមា យើងមិនអាចមានលទ្ធភាពក្នុងការរារាំងបែបនេះបានទេ។ យើងត្រូវការម៉ាស៊ីន regex ដែលមិនត្រឹមតែមានថាមពលខ្លាំងប៉ុណ្ណោះទេ ថែមទាំងមានល្បឿនលឿនទៀតផង។ នេះបាននាំយើងឱ្យធ្វើដំណើរដើម្បីបង្កើត RE# ដែលជាម៉ាស៊ីន regex ដំណើរការខ្ពស់ដែលបានសរសេរទាំងស្រុងនៅក្នុង F# ។ គោលដៅរបស់យើងគឺដើម្បីប្រើប្រាស់គំរូមុខងារទីមួយនៃ F# ដើម្បីបង្កើតដំណោះស្រាយដែលដំណើរការលើសពីបណ្ណាល័យ C++ ដែលបានធ្វើឱ្យប្រសើរយ៉ាងខ្លាំង ហើយយើងបានទទួលជោគជ័យ។
ហេតុអ្វី F# សម្រាប់ម៉ាស៊ីន Regex?
ជម្រើសនៃ F# មានចេតនា និងជាយុទ្ធសាស្ត្រ។ ខណៈពេលដែលភាសាដូចជា C ឬ C ++ ច្រើនតែជាលំនាំដើមសម្រាប់កូដសំខាន់នៃការអនុវត្ត យើងជឿថាលក្ខណៈពិសេសរបស់ F# គឺសមឥតខ្ចោះសម្រាប់ការគ្រប់គ្រងរដ្ឋដ៏ស្មុគស្មាញដែលមាននៅក្នុងការវាយតម្លៃ regex ។ ការផ្គូផ្គងគំរូដ៏មានអានុភាពរបស់វា ភាពមិនអាចប្រែប្រួលតាមលំនាំដើម និងប្រព័ន្ធប្រភេទនៃការបញ្ចេញមតិបានអនុញ្ញាតឱ្យយើងធ្វើគំរូនៃដែនបញ្ហាដោយធម្មជាតិ និងមានចន្លោះតិចសម្រាប់កំហុស។ ជំនួសឱ្យការប្រយុទ្ធជាមួយនឹងការគ្រប់គ្រងអង្គចងចាំដោយដៃ និងតក្កវិជ្ជាទ្រនិចស្មុគ្រស្មាញ យើងអាចផ្តោតលើក្បួនដោះស្រាយស្នូល។ នេះតម្រឹមយ៉ាងល្អឥតខ្ចោះជាមួយនឹងទស្សនវិជ្ជារបស់ Mewayz នៃការកសាងម៉ូឌុលដែលរឹងមាំ រក្សាបាន និងដំណើរការខ្ពស់ដែលបង្កើតបានជាឆ្អឹងខ្នងនៃប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មដែលអាចទុកចិត្តបាន។ F# បានផ្តល់អំណាចដល់យើងក្នុងការសរសេរកូដដែលលឿន និងត្រឹមត្រូវ។
ស្ថាបត្យកម្មសម្រាប់ការអនុវត្ត៖ ពី NFA ដល់ការប្រតិបត្តិចងក្រង
នៅស្នូលរបស់វា ម៉ាស៊ីន regex ភាគច្រើនត្រូវបានបង្កើតឡើងនៅលើ Non-deterministic Finite Automaton (NFA)។ បញ្ហាប្រឈមស្ថិតនៅក្នុងរបៀបដែលអ្នកក្លែងធ្វើស្វ័យប្រវត្តិកម្មនេះ។ ម៉ាស៊ីនបែបបុរាណតែងតែប្រើគំរូអ្នកបកប្រែ ដែលដើរ NFA មួយជំហានម្តងៗសម្រាប់តួអក្សរបញ្ចូលនីមួយៗ។ RE# ប្រើវិធីសាស្រ្តកាន់តែចាស់ទុំខុសគ្នា៖ យើងចងក្រងលំនាំ regex ដោយផ្ទាល់ទៅក្នុងមុខងារ F# ឯកទេសនៅពេលដំណើរការ។ ដំណើរការនេះ ត្រូវបានគេស្គាល់ថាជាការចងក្រង Just-in-Time (JIT) បំប្លែងលំនាំអរូបីទៅជាកូដ .NET Intermediate Language (IL) ដែលបានធ្វើឱ្យប្រសើរខ្ពស់។ លទ្ធផលគឺថាការផ្គូផ្គងខ្សែអក្សរលែងជាប់ពាក់ព័ន្ធនឹងការបកស្រាយរចនាសម្ព័ន្ធក្រាហ្វ ប៉ុន្តែជាការអនុវត្តមុខងារកាត់ដេរដែលអនុវត្តការត្រួតពិនិត្យនៅក្នុងរង្វិលជុំតឹង។ សមាសធាតុសំខាន់ៗនៃស្ថាបត្យកម្មរបស់យើងរួមមាន:
ការរួមបញ្ចូល និងផលប៉ះពាល់នៅក្នុង Mewayz OS
ការអភិវឌ្ឍន៍ RE# មិនមែនជាលំហាត់សិក្សាទេ។ វាត្រូវបានជំរុញដោយតម្រូវការពិភពលោកពិតនៃវេទិកា Mewayz ។ ប្រព័ន្ធប្រតិបត្តិការអាជីវកម្មរបស់យើងពឹងផ្អែកលើការដំណើរការទិន្នន័យរហ័សសម្រាប់អ្វីៗគ្រប់យ៉ាងចាប់ពីការវិភាគតាមពេលវេលាជាក់ស្តែង និងការវិភាគកំណត់ហេតុ ដល់ការផ្ទៀងផ្ទាត់ការបញ្ចូលរបស់អ្នកប្រើប្រាស់ និងការបំប្លែងស្ទ្រីមទិន្នន័យ។ មុនពេល RE# យើងបានជួបប្រទះបញ្ហាដំណើរការនៅក្នុងម៉ូឌុលដែលទទួលខុសត្រូវចំពោះការបញ្ចូលទិន្នន័យ និងសុពលភាព។ ដោយការរួមបញ្ចូល RE# ជាម៉ាស៊ីន regex លំនាំដើមនៅទូទាំង Mewayz OS យើងបានឃើញការកែលម្អភ្លាមៗ និងយ៉ាងខ្លាំង។ បំពង់ដំណើរការទិន្នន័យដែលធ្លាប់ជួបការលំបាកក្រោមបន្ទុកធ្ងន់ ឥឡូវនេះដំណើរការយ៉ាងរលូន ដោយធានាថាអតិថិជនរបស់យើងអាចបង្កើត និងដំណើរការកម្មវិធីស្មុគស្មាញ និងប្រើប្រាស់ទិន្នន័យដោយមិនបារម្ភអំពីការពន្យារពេលដំណើរការអត្ថបទ។ ការជំរុញការអនុវត្តនេះធ្វើឱ្យប្រព័ន្ធអេកូឡូស៊ីទាំងមូលប្រសើរឡើង ដោយធ្វើឱ្យគ្រប់ម៉ូឌុលដែលពឹងផ្អែកលើការរៀបចំអត្ថបទកាន់តែឆ្លើយតប និងអាចធ្វើមាត្រដ្ឋានបាន។
សេចក្តីសន្និដ្ឋាន៖ មូលនិធិសម្រាប់ការច្នៃប្រឌិតនាពេលអនាគត
ការកសាងម៉ាស៊ីន regex លឿនបំផុតនៅក្នុង F# គឺជាសមិទ្ធិផលដ៏សំខាន់ដែលបញ្ជាក់ពីការប្តេជ្ញាចិត្តរបស់ Mewayz ចំពោះឧត្តមភាពបច្ចេកទេស។ RE# បង្ហាញថាការជ្រើសរើសភាសាដូចជា F# សម្រាប់ ergonomics អ្នកអភិវឌ្ឍន៍ មិនមែនមានន័យថាការលះបង់ការអនុវត្តនោះទេ។ តាមពិតទៅ វាអាចជាគន្លឹះក្នុងការដោះសោវាបាន។ ភាពជោគជ័យនៃគម្រោងនេះផ្តល់នូវមូលដ្ឋានគ្រឹះដ៏រឹងមាំសម្រាប់ម៉ូឌុលនាពេលអនាគតនៅក្នុង Mewayz OS ដោយធានាថានៅពេលដែលយើងបន្ថែមមុខងារដ៏មានឥទ្ធិពលបន្ថែមទៀតសម្រាប់ស្វ័យប្រវត្តិកម្មលំហូរការងារ និងការវិភាគទិន្នន័យ សមត្ថភាពដំណើរការអត្ថបទស្នូលរបស់យើងនឹងមិនជាកត្តាកំណត់នោះទេ។ យើងបានបង្កើតម៉ាស៊ីនដែលមិនគ្រាន់តែលឿនសម្រាប់ថ្ងៃនេះប៉ុណ្ណោះទេ ប៉ុន្តែបានបង្កើតស្ថាបត្យកម្មដើម្បីដោះស្រាយបញ្ហាប្រឈមទិន្នន័យដែលទាមទារសម្រាប់ថ្ងៃស្អែក។
ពង្រឹងអាជីវកម្មរបស់អ្នកជាមួយ Mewayz
Mewayz នាំយកម៉ូឌុលអាជីវកម្មចំនួន 207 ទៅក្នុងវេទិកាតែមួយ — CRM, វិក្កយបត្រ ការគ្រប់គ្រងគម្រោង និងច្រើនទៀត។ ចូលរួមជាមួយអ្នកប្រើប្រាស់ 138,000+ ដែលសម្រួលដំណើរការការងាររបស់ពួកគេ។
ចាប់ផ្តើមឥតគិតថ្លៃថ្ងៃនេះ →Try Mewayz Free
All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.
Get more articles like this
Weekly business tips and product updates. Free forever.
You're subscribed!
Start managing your business smarter today
Join 6,210+ businesses. Free forever plan · No credit card required.
Ready to put this into practice?
Join 6,210+ businesses using Mewayz. Free forever plan — no credit card required.
Start Free Trial →Related articles
Hacker News
SpaceX Strikes Deal With Cursor for $60 Billion
Apr 21, 2026
Hacker News
Claude Code removed from Anthropic's Pro plan
Apr 21, 2026
Hacker News
California has more money than projected after admin miscalculated state budget
Apr 21, 2026
Hacker News
Zindex – Diagram Infrastructure for Agents
Apr 21, 2026
Hacker News
I don't want your PRs anymore
Apr 21, 2026
Hacker News
ChatGPT Images 2.0
Apr 21, 2026
Ready to take action?
Start your free Mewayz trial today
All-in-one business platform. No credit card required.
Start Free →14-day free trial · No credit card · Cancel anytime