Hatena::ブログ(Diary)

ある一般

 | 

2008-02-04, Mon

最もタメになる「初心者用言語」は daiqooji 21:30

言語オタきもいよなー。daiqoojiサイコー

daiqoojiというのはいろんな言語のフィーチャーや躓きやすい点を大胆に取り入れた言語です。再帰スコープやインデントやコメントという概念がないため非常にとっつきやすいです。ソースコードの一文字一文字が命令となっています。以下にその命令を見ていきましょう。

*
メモリを確保します。このメモリプログラマが明示的に解放しなければなりませんが、解放する命令は用意されていません。(Cより)
C
現在の継続をスタックに積みます。(Schemeより)
M
モナドをつくります。(Haskellより)
J
例外 NullPointerException を発生させます。(Javaより)
X
右クリックを禁止します。(JavaScriptより)
D
DanKogai添削してもらえます。(Perlより)
R
gemが重いんですけお…(Rubyより)
@
この部分がセキュリティホールになります。(PHPより)
+
難解な記号で誰にも読めないコードを書き、悦に入ることができます。(Brainfuckなどより)
Y,S,K
それぞれYコンビネータ、Sコンビネータ、Kコンビネータですが、どう使うかは明らかにされていません。

いやー、どれを取ってもプログラミング言語エッセンスといっていいものばかりでしたね。さて、daiqoojiには以上の命令の他に、プリプロセス命令として以下のものがあります:

大,空,寺,あ,ゆ,(,・,▽,),萌,え,っ,!
ソースコードにこの文字が表われた時点で、その文字を印字します。

これを利用して、daiqoojiでの最初のプログラムは以下のようになります:

大空寺あゆ(・▽・)萌えっ!!

実行結果:

大空寺あゆ(・▽・)萌えっ!!

最後に、現在のdaiqoojiのPerlでの実装を貼っておきますね。

#!/usr/bin/perl
use strict;
use warnings;

while (<STDIN>) {
    foreach my $ch (split //) {
        if ($ch =~ /[大空寺あゆ(・▽・)萌えっ!!]/) {
            print $ch;
        } else {
            # TODO
        }
    }
}

clock9clock9 2008/02/04 21:58 IPは厨房とおっさん向けの雑誌のタイトルですよ

 | 
Calendar
0000 | 00 |
2003 | 08 | 10 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 |
カウンター