2D for Haskeller

乗らないとダメな気がしました。参考はあちこち。まぁ言語自体がアレな上に共通点多い(実用に向(略とか)普通に。

2D とは

  • 今年度のハッカーが使う言語です
  • 純粋関数型
  • IOモナドすらない
  • というかなにもない
  • シンプルイズベスト

2D の型

代数的データ型が一つ、あらかじめ定義されています。

data val = Inl val | Inr val

unit 型があります。 () みたいなやつ。

あとリスト作るための2要素タプルのようなものがあります。 (hoge, hage) とか (hoge, (hage, hige)) とか。

ごくごく普通の言語であるとわかっていただけると思います。

しかし、シンプルイズベストの思想からか、はたまた成長過程だからか、あまり言語機能は多くありません。

整数型

ありません。でも関数型な人はラムダ計算で作れますよね(にっこり)。

真偽値

ありません。でも関数型略(にっこり)

連想配列

ありません。でも略(にっこり)。うそ。関数型な人でも苦労しそうな気がします。

ユーザ定義型

ありません。

要するに、

data val = () | (val, val) | Inl val | Inr val

以外の型はありえません(にっこり)。

変数

ありません(にっこり)。「変」わる「数」という時点で、これが副作用の元凶であることは明白なので、変数の除去は英断と言えます。

型推論はあります。型は処理系によって常に一意に特定されます。つまり、上記の val 型であると推論されます。

関数

関数型言語なので当然あります(にっこり)。関数は0個から2個の入力引数と、出力が1つあります。関数はハスなんとかの人にはすごい普通すぎて普通なので面白くないと思います。

ああごめんなさいこんな普通の言語紹介して。もうやめます。ハイレベルなみなさんには普通すぎて常識でした。でも一応最後に知識の応用として。

Hello World

,.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................,
:hello   *==============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================* :
:        !send [(Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), (Inl Inl Inl Inl Inl Inl Inl Inl Inl Inl Inr (), Inr ()))))))))))))), E]!--
:        *==============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================* :
,.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................,

副作用の無い純粋関数型なので、出力は適当に処理系で工夫してください。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h