ヤルキデナイズド

Unclassified Articles on Software and IT

Streem 言語の雑感

matz が Streem なるスクリプト言語をデザインしているということで、パッと見で思いついたことをメモしておく:

  • UNIX の pipe っぽいストリーム操作を中心に据えた言語
  • catSTDIN | STDOUT と書けるらしい
  • 型が欲しい
  • (Functional?) Reactive Programming と相性が良さそう
    • 時間的に変化するイベントを取り扱える?
  • 型が欲しい
  • 例外状態の伝搬をどう扱う?
    • UNIX pipe みたいに繋いだプロセスのどれかが異常終了したら全体の処理が失敗するのでは困る
  • 文字列とかいうリニアな記号表現で分岐したストリームを表現するのがまず難しい疑惑
  • いっそ Haskellneedle みたいに ASCII アートで書くのはどうだ
{-# LANGUAGE QuasiQuotes #-}

fNeedle :: (Int, Int, Int) -> (Int, Int, Int, Int)
fNeedle = [nd|
    }=={(+1)}=\==========================>
              \
    }===\     \             /============>
        \     \             /
    }=) \ (==={uncurry div}=/={negate}===>
        \
        \=={(*2)}========================>
|]

型が欲しい。