ฉันต้องการสร้างแอปพลิเคชันที่เรียบง่ายและพิสูจน์ความคิดรวบยอด (REPL) ที่ใช้ตัวเลขแล้วประมวลผลคำสั่งกับหมายเลขนั้น
ตัวอย่าง: ฉันเริ่มต้นด้วย 1 จากนั้นฉันเขียน " add 2
" มันให้ฉัน 3. จากนั้นฉันเขียน " multiply 7
" มันให้ 21 ฉันแล้วฉันต้องการทราบว่ามันเป็นนายกฉันเขียน " is prime
" (ในจำนวนปัจจุบัน - 21) มันทำให้ฉันเป็นเท็จ " is odd
" จะให้ฉันจริง และอื่น ๆ
ตอนนี้สำหรับแอ็พพลิเคชันแบบง่ายที่มีคำสั่งไม่กี่อย่างแม้แต่แบบธรรมดาswitch
ก็สามารถทำได้เพื่อประมวลผลคำสั่ง แต่ถ้าฉันต้องการความสามารถในการขยายฉันจะต้องใช้ฟังก์ชันนี้อย่างไร ฉันใช้รูปแบบคำสั่งหรือไม่ ฉันจะสร้าง parser / interpreter ง่าย ๆ สำหรับภาษาได้หรือไม่? ถ้าฉันต้องการคำสั่งที่ซับซ้อนมากขึ้นเช่น " multiply 5 until >200
" สิ่งที่จะเป็นวิธีที่ง่ายในการขยาย (เพิ่มคำสั่งใหม่) โดยไม่ต้องคอมไพล์ใหม่?
แก้ไข: เพื่อชี้แจงบางสิ่งบางอย่างเป้าหมายสุดท้ายของฉันจะไม่ทำให้สิ่งที่คล้ายกับ WolframAlpha แต่เป็นตัวประมวลผลรายการ (ของตัวเลข) แต่ฉันต้องการที่จะเริ่มช้าในตอนแรก (ในตัวเลขเดียว)
ฉันกำลังนึกอะไรบางอย่างที่คล้ายกับวิธีที่จะใช้ Haskell ในการประมวลผลรายการ แต่เป็นรุ่นที่ง่ายมาก ฉันสงสัยว่าบางอย่างเช่นรูปแบบคำสั่ง (หรือเทียบเท่า) จะพอเพียงหรือถ้าฉันต้องสร้างมินิภาษาใหม่และใช้ parser เพื่อให้บรรลุเป้าหมาย
แก้ไข 2: ขอบคุณสำหรับคำตอบทั้งหมดที่เป็นประโยชน์กับฉัน แต่ Emmad Kareem ช่วยฉันมากที่สุดดังนั้นฉันจะเลือกเป็นคำตอบ ขอบคุณอีกครั้ง!