Cadence SKILL (LISP および SCHEME に基づく独自の EDA 言語) では、プロシージャで引数の型を定義できます。
間違ったタイプの引数が与えられた場合、エラーになります。以下のシェルレポートを参照してください。
procedure( foo( ko "t" ) printf( "Hey %s\n" ko ) )
>foo
>foo("1")
>Hey 1
>t
foo(1)
>*Error* foo: argument #1 should be a string (type template = "t") - 1
Ruby でこれほど気の利いたものはありますか? つまり、本体ではなく、メソッドのインターフェース定義で、型チェックが行われるということですか?
ありがとう。