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とかみたいに、上カーソルで履歴が出る!なんでだ!?
一度終了させて、もう一度起動させても覚えている。うそっ子シェルとはいえ、なんとなくシェルっぽいのが、なんかびっくり。