D言語
独自シェル開発を先のmushに関するところで書いた。
ま、これを作り上げるのはナカナカ難しいことではあるのだろう。
そもそもシェルなんてもんを作ったことがない。
シェルと十把一絡げに言うのも問題か。今回のはシェルと言っても、非常に機能が絞られている。
まあとりあえずシェルっぽいものを作ってみた。
import std.stream; int main( char[][] arg ) { char[] str; stdout.writeLine( "Music Shell Version 0.0\nCopyright (C) ideo 2004 All Rights Reserved\n" ); do{ stdout.writeString("%"); char[] str = stdin.readLine(); if( str[]=="y" || str[]=="Y" ) stdout.writeLine( "Yes!" ); else if( str[]=="n" || str[]=="N" ) stdout.writeLine( "No!" ); else if( str[]=="q" || str[]=="Q" ) break; else continue; } while(!str[]) return 0; }
てか、ものすごい感動した。
C言語は学校の勉強程度にしか書いたことないし、そのときのイメージがあるから、やれ変数の型がウンヌンとか、コンパイラが吐き出すエラーを存分に覚悟して書いたのがコレなんだけど。
D言語は違うね!懐の深さが違う。
許してくれる。いろいろと。
もっとうまい書き方は当然あるのだろうけれども、それ以前にD言語の懐の深さを思い知り感涙。
偶然の産物というか、このソースでできたウソっ子シェル、なんと入力した内容を記憶してくれている・・・。
linuxとかみたいに、上カーソルで履歴が出る!なんでだ!?
一度終了させて、もう一度起動させても覚えている。うそっ子シェルとはいえ、なんとなくシェルっぽいのが、なんかびっくり。