Saya ingin membuat aplikasi sederhana, proof-of-concept (REPL) yang mengambil nomor dan kemudian memproses perintah pada nomor itu.
Contoh: Saya mulai dengan 1. Lalu saya menulis " add 2
", ia memberi saya 3. Lalu saya menulis " multiply 7
", ia memberi saya 21. Kemudian saya ingin tahu apakah itu prima, jadi saya menulis " is prime
" (pada nomor saat ini - 21), itu memberi saya salah. " is odd
" akan memberiku kebenaran. Dan seterusnya.
Sekarang, untuk aplikasi sederhana dengan beberapa perintah, bahkan yang sederhana switch
akan dilakukan untuk memproses perintah. Tetapi jika saya ingin diperpanjang, bagaimana saya perlu menerapkan fungsi? Apakah saya menggunakan pola perintah? Apakah saya membuat parser / juru bahasa sederhana untuk bahasa ini? Bagaimana jika saya ingin perintah yang lebih rumit, seperti " multiply 5 until >200
"? Apa cara mudah untuk memperpanjangnya (menambahkan perintah baru) tanpa mengkompilasi ulang?
Sunting: untuk memperjelas beberapa hal, tujuan akhir saya bukan untuk membuat sesuatu yang mirip dengan WolframAlpha, melainkan daftar (jumlah) prosesor. Tapi saya ingin memulai dengan lambat pada awalnya (pada nomor tunggal).
Saya memikirkan sesuatu yang mirip dengan cara orang menggunakan Haskell untuk memproses daftar, tetapi versi yang sangat sederhana. Saya ingin tahu apakah sesuatu seperti pola perintah (atau yang setara) akan mencukupi, atau jika saya harus membuat bahasa mini baru dan pengurai untuk mencapai tujuan saya?
Edit2: Terima kasih atas semua tanggapannya, semua sangat membantu saya, tetapi Emmad Kareem paling membantu saya, jadi saya akan memilihnya sebagai jawabannya. Terima kasih lagi!