年賀状ネタばらし: 3日目

Zipアーカイブを展開すると現れた怪しいファイル、lazyk

これは開くとすぐわかると思うのですが、Lazy Kのソースコードです。

Lazy K – Wikipedia: http://ja.wikipedia.org/wiki/Lazy_K

翻訳: プログラミング言語Lazy K: http://e.tir.jp/wiliki?%CB%DD%CC%F5%3A%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%B8%C0%B8%ECLazy_K

Lazy Kは、SKIコンビネータのみを実装している純粋関数型言語かつチューリング完全です。遅延評価が行われます。

ソースをちょっと見てみると、こんな感じになっています。

K(I(S(SI(K(S(K(S(S(KS)K)I))(S(SII)I(S(S(KS)K)I)))))(K(S(SI(K(S(K(S(
S(KS)K)I))(S(SII)I(S(S(KS)K)I)))))(K(S(SI(K(S(K(S(S(KS)K)I))(S(SII)
I(S(S(KS)K)I)))))(K(S(SI(K(S(K(S(S(KS)K)I))(S(SII)I(S(S(KS)K)I)))))

見たまんま、SKIと括弧しか書かれていません。

さっそくiroriさんの処理系を落としてきて実行してみましょう。

$ gcc lazyk.c -o lazy
$ ./lazy lazyk
         ++++++
         ++++++
         ++++[>
++>+++>++++++<<<-]>>+++++++   +.>++.<<.>-------.>++++.
<<.>-..<.>.++++++++.<.>----   --.+.<.>++++.-------.<.>
++++.>-.<<.>>+..<<.>----.++   +.<.>---..<.>>---.++.<<.
      >>.-.<         <.>.>-   --.<<.            >+++.-   -.<.>++.--.<.>-.++.<.>++++++.---.<.>----.-.<.>>+
      ++.<++         ++.<.>   >+.<--            -.<.>+   ++++.----.<.>+++++++.>.<<.>>--.<--------.<.>>-.+
      .<<.>+         +++++.   ------            -.<.>+   +++.>.<<.>+.++.<.>-----.+++++.<.>>-.<-----.<.>>.
   <--.<.            >++++.   >+.<<.            >>-.<+                        ++.<.>
   >++.<-            --.<.>   ---..<            .>++++                        ++.---
   ---.<.            >+++++   .----.            <.>+++                        .>-.<<
.>-.++            +++.<.      >>+.--.<<.>>+.<-----.<.>                        >-.<--
.<.>>.            .<<.>+      .+++.<.>-----.+++++.<.>>                        +.+.<<
.>>---            .<----      .<.>>++.<.<.>..<.>+.++.<                        .>>+++
            ..<<.>>-.<+.<.>------.>+.<<.>>.<+                                 .<.>++
            +.>--.<<.>>.<--.<.>>++.-----.<<.>                                 +.>+++
            +.<<.>++.>----.<<.>>+.<-----.<.>+                                 ++++++
            ++.---                     --.<.>                                 +++++.
            >++.<<                     .>----                                 ---.++
            .<.>++                     .>++.<                                 <.>>--
            --.<++.<.>--.+++.<.>--------.>+++                                 .<<.>>-.<++.<.>>---.<
            ++++++.<.>.>++.<<.>>+.<--.<.>----                                 ---.>.<<.>++++.+.<.>+
            +++.>+.<<.>---..<.>--.+++.<.>++.-                                 ------.<.>+++++.>--.<
            <.>>++                     .---.<                                 <.>--.
            >.<<.>                     >.-.<<                                 .>----
            .+++++                     ++.<.>                                 >+++.<
            ----.<.>>+.<++++.<.>.-----.<.>>--                     --.+.<      <.>>-.
            <-.<.>>++.<++++.<.>+++.>++.<<.>>-                     -.<.<.      >--.-.
            <.>----.++.<.>+..<.>-.>+++.<<.>--                     -.>---      .<<.>>
            +.-.<<                     .>>+++                     .<++++      .<.>>-
            .+.<<.                     >+++.>                     .<<.>-      ----.>
            -.<<.>                     >+..<<                     .>++++      .>.<<.
            >>.<--.<.>++++.>----.<<.>---.>-.<                     <.>>++      ++.<--
            ---.<.>+++++++.-.<.>>---..<<.>---                     --.+++      +.<.>+
            ++.----.<.>++.-----.<.>>+.<++++++                     +.<.>-      -.>+.<
               <.>>--               .++.<<                        .>.--.      <.>>++
               .<.<.>               >.----                        -.<<.>      -----.
               .<.>+.               >++++.                        <<.>-.      .<.>..
            <.>..<                     .>..<.            >..<.>..<.>..<.>..<.>..<.>..<.>..<.>..<.>+++++++
            ..<.>>                     --.<--            -----.<.>>--.<++++.<.>>++++..<<.>++.------.<.>>+
            .<++++                     ++.<.>            ------..<.>++.>-----.<<.>--..<.>++.++++++.<.>---
         -----.                           .<.>..
         <-----                           ------
         ------                           -----.

「賀正」というAAが表示されました!

でも、これが答えではないのです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です