Streem 言語の雑感
matz が Streem なるスクリプト言語をデザインしているということで、パッと見で思いついたことをメモしておく:
- UNIX の pipe っぽいストリーム操作を中心に据えた言語
cat
はSTDIN | STDOUT
と書けるらしい- 型が欲しい
- (Functional?) Reactive Programming と相性が良さそう
- 時間的に変化するイベントを取り扱える?
- 型が欲しい
- 例外状態の伝搬をどう扱う?
- UNIX pipe みたいに繋いだプロセスのどれかが異常終了したら全体の処理が失敗するのでは困る
- 文字列とかいうリニアな記号表現で分岐したストリームを表現するのがまず難しい疑惑
- いっそ Haskell の needle みたいに ASCII アートで書くのはどうだ
{-# LANGUAGE QuasiQuotes #-} fNeedle :: (Int, Int, Int) -> (Int, Int, Int, Int) fNeedle = [nd| }=={(+1)}=\==========================> \ }===\ \ /============> \ \ / }=) \ (==={uncurry div}=/={negate}===> \ \=={(*2)}========================> |]
型が欲しい。