Bir sayı alan ve daha sonra bu sayıdaki komutları işleyen basit, bir kavram kanıtı uygulaması (REPL) yapmak istiyorum.
Örnek: 1 ile başlıyorum. Sonra " add 2
" yazıyorum , bana 3 veriyor. Sonra " multiply 7
" yazıyorum , bana 21 veriyor. O zaman asal olup olmadığını bilmek istiyorum, bu yüzden " is prime
" yazıyorum (geçerli sayıya - 21), bana yanlış verir. " is odd
" bana gerçek olur. Ve bunun gibi.
Şimdi, birkaç komut içeren basit bir uygulama switch
için, komutların işlenmesi için basit bir uygulama bile yapılabilir . Ancak genişletilebilirlik istersem, işlevselliği nasıl uygulamam gerekir? Komut şablonunu kullanabilir miyim? Dil için basit bir ayrıştırıcı / yorumlayıcı oluşturabilir miyim? " multiply 5 until >200
" Gibi daha karmaşık komutlar istersem ne olur ? Yeniden derlemeden genişletmek (yeni komutlar eklemek) için kolay bir yol ne olabilir?
Düzenleme: birkaç şeyi açıklığa kavuşturmak için, son hedefim WolframAlpha'ya benzer bir şey yapmak değil, bir sayı (sayı listesi) işlemcisidir. Ama önce yavaşça başlamak istiyorum (tek sayılarla).
Bir liste işlemek için Haskell kullanmak gibi bir şey aklıma, ama çok basit bir sürümü. Komut kalıbı (veya eşdeğeri) gibi bir şeyin yeterli olup olmadığını mı yoksa hedeflerime ulaşmak için yeni bir mini dil ve ayrıştırıcı mı yapmam gerektiğini merak ediyorum?
Edit2: Tüm cevaplar için teşekkürler, hepsi bana çok yardımcı oldu, ama Emmad Kareem bana en çok yardımcı oldu, bu yüzden cevap olarak seçeceğim. Tekrar teşekkürler!