AndromedaにGUIコントロール(Win32ラッパー)を追加しました。LLPMLの問題もいくつか修正しました。
ボタンを押すと終了する簡単なアプリケーションは次のようになります。
#pragma subsystem(WINDOWS_GUI) var f = new Form; f.SetClientSize(120, 50); var b = new Button; b.SetBounds(30, 15, 60, 20); b.Text = "Quit"; b.Click.Add(\ => f.Close()); f.AddControl(b); Application.Run(f);
クラスも関数も定義せずにフラットに書いています。
最初のpragmaはコマンドプロンプトを抑制するためのものです。printfデバッグをするときはコメントアウトします。
イベント定義(b.Click.Add)ではラムダ式を使っています。パーサの都合でC#とHaskellをごちゃ混ぜにした文法になっています。
【C#】 x => x + 1 【Haskell】 \x -> x + 1 【Andromeda】\x => x + 1
\はバックスラッシュをλに見立てたもののようです。