指向性メモ::2008-12-04::ゆの in Ada

ページ情報
制作日
2008-12-04T11:43:38+09:00
最終更新日
2008-12-04T11:43:38+09:00
ページ内目次

忘れた頃にやってくる。

with Ada.Text_IO; use Ada.Text_IO;

function Yuno return Integer is

   type Yuno is new String;

   function "/" (X: in Yuno; Y : in String) return String is
   begin
      return String(X) & Y;
   end "/";

   function "/" (X: in String; Y : in Yuno) return String is
   begin
      return X;
   end "/";

   function "<" (X: in String; Y : in String) return Integer is
   begin
      Put_Line (X & "×365 " & Y);
      return 0;
   end "<";

   X : Yuno := "ひだまり";
   _ : String := "スケッチ";

begin
   return
     X / _ / X < "来週も見てくださいね!"
     ;
end Yuno;

gantmakeするときに-gnatifつけないとエラーになるので注意。Adaはunerlineをidentifierの先頭に持ってこれないので、gnatiを使ってidentifierに使用できる文字を拡張し、いわゆる全角アンダーバーを変数名にしている。

あとは演算子のオーバーロードで適当に。引数の型で動作を変えて2個目のXを無視してるくらいかな。

Comments

Trackbacks

Trackback Ping URI

http://yudai.arielworks.com/memo/2008/12/04/114338.trackback

末尾に「8 + 1」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「114338.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

Name (optional)
Email address or URI (optional)
Do the math below (required to filter comment spams)
8 + 1 + 4 =
Message (required)
Submit
連絡先、リンク、転載や複製などについては『サイト案内』をご覧ください。Powered by HIMMEL

I ♥ Validator