プログラミング言語 Droxi を試してみた
Twitterのフォロワーさんにプログラミング言語を開発されている方がおられて、実際に使ってみたい方を募集されていたので、試してみた。
使用環境は、
OS:lubuntu linux 17.04
メモリ:786MB
の仮想環境を使用した。
で、以下実際に書いたコード(幾つかは、すでにTwitter上で投稿してる)
//HelloWorldサンプルコード
Main(Void:[]) {
["Hello World! for Droxi!"]->print }
//FizzBuzzのサンプルコード
Main(Void:[]) { [Int->num]->def [30]>>num [Int->i]->def
for->([0]>>i:i<num+1:[i+1]>>i){ if->(i%3==0){["Fizz\n"]->print} if->(i%5==0){["Buzz\n"]->print} if->(i%15==0){["FizzBuzz\n"]->print} else{[i]->print} } }
//Droxiで作ったノベルゲーム風サンプル
keyinput(String:[]) { return->_input }
Main(Void:[]) {
["Droxi Novel Game Sample\n"]->print
[]->keyinput ["Droxi is developed by @NA_Prog"]->print []->keyinput ["And, This Program created by S.H.(GAMELINKS)"]->print []->keyinput
}
とりあえず、今んとこ書いてるコードはこんなもんかな?
書いてて面白かったのは変数の定義と代入の記述かな。
例えば、int型の変数numを宣言する場合は以下のようになる。
[Int->num]->def
で、代入の場合は以下の通り
[30]>>num
C/C++やRubyでは変数の値は右辺にくるから、書いてて斬新だなぁと思った(もしかしたら知らないだけで、あるのかも?)
あと演算子>>で変数に代入するって手法は結構すんなりなじめるから、使いやすいなぁと思ったね。
あと便利だなぁ、と思ったのは各種関数がオブジェクト?(C++ではrvalueとでもいえばいいか?)の後に->演算子で呼び出される方法になっていることかな。
RubyやC#みたくオブジェクのクラスごとにメソッドを呼び出す形になっているのは易くていいなぁと思った。
ただ、変数定義で [ ] を多用するので少しコードが読みにくく感じるかな?(これも僕が知らないだけで、他な変数定義ができるのかも?)
あと、各種ファイルの展開(RubyでのFile.open的なもの)があるとノベルゲーム風サンプルとかをもっとすっきりしたコードで書けるし、うれしいなと思ったねー。
今後の展望に期待したいプログラミング言語かな?