Я хочу зробити просту програму із підтвердженням концепції (REPL), яка приймає число, а потім обробляє команди на це число.
Приклад: я починаю з 1. Потім я пишу " add 2
", це дає мені 3. Потім я пишу " multiply 7
", це дає мені 21. Потім я хочу знати, чи це просто, тому я пишу " is prime
" (на поточний номер - 21), це дає мені хибність. " is odd
" дав би мені правду. І так далі.
Тепер для простого додатка з декількома командами навіть switch
обробку команд зробить навіть проста . Але якщо я хочу розширити, як мені потрібно реалізувати функціонал? Чи використовую я шаблон команди? Чи будувати простий парсер / інтерпретатор для мови? Що робити, якщо я хочу більш складні команди, наприклад " multiply 5 until >200
"? Який був би простий спосіб розширити його (додати нові команди) без перекомпіляції?
Редагувати: щоб уточнити кілька речей, моєю кінцевою метою було б не зробити щось подібне до WolframAlpha, а скоріше перелік (з числа) процесор. Але я хочу спочатку повільно (на одиничних числах).
Я маю на увазі щось подібне до того, як можна було б використовувати Haskell для обробки списків, але дуже проста версія. Мені цікаво, чи вистачить чогось на зразок командного шаблону (або його еквівалента) чи мені доведеться створити нову міні-мову та аналізатор для досягнення своїх цілей?
Edit2: Дякую за всі відповіді, всі мені були дуже корисні, але Еммад Карім допомагав мені найбільше, тому я обрав це як відповідь. Знову дякую!