タイムテーブルが発表された。マコピーのトークも気になる〜〜〜ってなって、とあるところでこうつぶやいた。6)の型付けについてイマイチ理解が足りない。力を借りつつ調べてみた。以下の点について、教えてもらってスッキリした。Typingな言語まずRakuの型付けの性質について。Typing=漸進的型付けを持つ(だと思う)。漸進的型付けについては以下の記事がすごく面白いです。Typingだぜ!って言ってる人は他にもいる。それを表現することはできなくて、以下のコードはそのままfooと印字する。$i;}func('foo');まぁ当たり前なんだけど、これをRakuでやろうとするとシグネチャーを付けてこうなる。$i;}func('foo');実行しようとするとコンパイルエラーになる。このケース(X::TypeCheck::Argument)だけのようだ。X::TypeCheck::*Rakuのコンパイルor実行時エラーの定義はRakudoの例外に関するソースを読むと結構分かる。X::TypeCheckを継承したクラスX::TypeCheck::*。ソースコードをみる限り、それを実装していないX::TypeCheck::Argumentでコンパイルエラーが出るのが謎)。いう場合に型チェックでどんなエラーが出るのかをいくか試してみた。};とすれば、例外の名前とメッセージをみることができる。X::TypeCheck::Assignment型宣言した変数に異なる型の値を代入しようとした時に発生する。("foo")X::TypeCheck::Returnサブルーチンの返り値が期待する型ではない時に発生する。("foo")X::TypeCheck::Binding指定した型以外の値をバインドしようとした時に発生する。("foo")X::TypeCheck::Binding::Parameterクラス内メソッドの引数が期待する型と異なる場合に発生する。("foo")X::TypeCheck::Assignmentクラス内のプロパティの値が期待する型と異なる場合に発生する。("foo")X::TypeCheck::Argumentサブルーチンの引数が期待する型と異なる場合に発生する。};で、これだけコンパイルエラーになる。<BOL>⏏func('foo');ちなみに、ロール周りのエラーロール周りでわりとコンパイル時にエラーを吐いてくれて、イケてる。複数のロールを実装した場合にメソッドが被ってしまった時は以下の通り。{}stubで定義したメソッドを実装しない場合。X::TypeCheck::*で定義された例外を投げることが分かった。NativeCallでGroongaも面白そう!わくわく〜〜〜。追記Twitterでつぶやいたら、Rakuは漸進的型付けをサポートするでいいんしょうか。2020すごい勢いでエリザベスさんがレスしてくれた。