숫자를 가져 와서 해당 번호의 명령을 처리하는 간단한 개념 증명 응용 프로그램 (REPL)을 만들고 싶습니다.
예 : 1부터 시작합니다. 그런 다음 " add 2
"를 쓰면 나에게 3 multiply 7
을줍니다. 그런 다음 " "를 쓰면 나에게 21을줍니다. 그런 다음 소수인지 알고 싶어서 " is prime
"(현재 숫자에- 21), 그것은 나에게 거짓을 준다. " is odd
"는 저에게 사실을 줄 것입니다. 등등.
이제 명령이 적은 간단한 응용 프로그램의 switch
경우 명령을 처리 하는 간단한 작업도 수행됩니다. 그러나 확장 성을 원한다면 어떻게 기능을 구현해야합니까? 명령 패턴을 사용합니까? 언어에 대한 간단한 파서 / 인터프리터를 작성합니까? " multiply 5 until >200
" 와 같이 더 복잡한 명령을 원하면 어떻게 합니까? 재 컴파일하지 않고 확장 (새 명령 추가)하는 쉬운 방법은 무엇입니까?
편집 : 몇 가지를 명확히하기 위해, 나의 최종 목표는 WolframAlpha와 비슷한 것이 아니라 (숫자 목록) 프로세서를 만드는 것입니다. 그러나 처음에는 천천히 시작하고 싶습니다 (단일 숫자로).
Haskell을 사용하여 목록을 처리하는 방식과 매우 비슷한 버전이지만 매우 간단한 버전을 염두에두고 있습니다. 명령 패턴 (또는 이와 동등한)과 같은 것이 충분하거나 목표를 달성하기 위해 새로운 미니 언어와 파서를 만들어야하는지 궁금합니다.
Edit2 : 모든 답변에 감사드립니다. 모두 도움이되었지만 Emmad Kareem이 가장 많이 도와 주었으므로 답변으로 선택하겠습니다. 다시 감사합니다!