[972] 関数の型の宣言構文について
投稿者:みずしま
2007/06/14 21:02:39
こんにちは。みずしまです。
以前から前橋さんのページの特にプログラミング言語関係のネタをwatchして
いましたが、今年になってから「プログラミング言語を作る」の
「静的型・バイトコード実行型言語を作る」編を開始されたということで、
静的型言語好きな自分としては、Diksamがどんな言語になっていくのか
楽しみにしております。
さて、本題なのですが、Diksamでは将来的に関数型の変数を扱う機能の実装を
予定されているようですが、構文に関してはまだ決定されていないようです。
案としてJava 7風に
B foo(A);
と書く方法と
var foo:(A) B;
と書く方法の2つを考えておられるようですが、どちらも関数を返す関数などの
複雑な型を書く場合にイマイチな気がします。
C(B) foo(A); //Aを受け取り、「Bを受け取りCを返す関数」を返す関数
var foo:(A) (B) C; //引数と返り値の型が区切られて無いせいで、読みにくい気がする
というわけで、静的型付け関数型言語(MLとかHaskellなど)でよくあるように、
foo : int -> int;
と書くのはいかがでしょう?