私が独自に開発している「Omega言語」が大幅にグレードアップして帰ってきました。 今回変更した事項は、つぎの六つです。
- 変数定義「let」の導入
- if文の導入
- while文の導入
- いくつかの標準関数の設定
- ちょっと高速化
- 仮想機械実行化
また、文法も大幅に変更しました。
このコードは、数当てゲームを表しています。 (omegaディレクトリ内のkazuate.om)
def :main():
input">"inp;
if inp == dango = {test()};
println_残念!;
end;
def :test():
println_正解!!;
println_ゲームを続けるならy、やめるならnを入力してください。;
input"=>"ans;
if ans == y = {start()};
exit;
def :start():
while_True = {main()};
end;
start()
- 今回は「厳格な関数型言語」とし、すべて関数でまとめたかったので、if / whileの中では関数呼び出ししかできないようにしています。 ですので、通常よりもコードが長くなりやすいという欠点があります。
- また、標準出力では変数か、それともただの文字列なのか、出力対象を自動で分ける機能がついております。
- 指定がければ、データはすべてint型で扱われます。
binディレクトリの中に、(多分)「Omega.pyc」という名のコンパイル済みバイナリファイルがあると思われます。 そのファイルのパス + 実行したいファイルのパス とプロンプトに入力しますと、実行できます。
一週間ちょっとで作ったので、コードが荒いです。ご了承ください。 ついった始めました。=> https://twitter.com/dangomu39300363 Qiita => https://qiita.com/ThinkpadL540 今後のモチベのためにもフォローしていただけるとうれしいです!!