HeadlinesBriefing HeadlinesBriefing.com

Kombinator Parser Dijelaskan dengan Contoh

Hacker News •
×

Kombinator parser adalah fungsi yang menerima string masukan dan mengembalikan nilai hasil parsing beserta sisa string yang belum diurai. Parser<T> didefinisikan sebagai (input: string) => [T, string]. Sebagai contoh, p Integer mengurai "10 20 30" menjadi angka 10 dengan sisa " 20 30". p Hello mengekstrak "Hello" dari "Hello 100", menyisakan " 100". p Ignore Whitespace mengonsumsi spasi, mengembalikan " " dan "100". Kemudian p Integer mengurai "100" menjadi angka 100 dan string kosong.

Kombinator urutan seperti p Seq memungkinkan penggabungan parser: p Seq(p Hello, p Ignore Whitespace, p Integer) mengurai "Hello 100" menjadi tuple ["Hello", null, 100]. Kombinator p Map mengubah nilai hasil parsing, misalnya mengonversi ["Hello", null, 100] menjadi {greeting: "Hello", who: 100}. Demikian pula, p Seq(p Number, p Semicolon) mengurai "10;20;30;" menjadi daftar angka dengan menerapkan parser secara berulang untuk mengonsumsi setiap pasangan angka-titik koma.

Artikel ini juga menjelaskan pengolahan keluaran ping jaringan, yang menunjukkan bagaimana data terstruktur dapat diekstrak dari teks mentah menggunakan kombinator ini. Operasi fold dan unfold memperlihatkan bagaimana parser dapat mereduksi atau merekonstruksi nilai, misalnya menjumlahkan daftar atau mengonversi "Hello 100" menjadi ["Hello", " ", 100] dan sebaliknya.

Sumber: Hacker News · Diringkas oleh HeadlinesBriefing