В Cadence SKILL (собственный EDA-язык, основанный на LISP & SCHEME), можно определить типы аргументов в процедуре.
Он выдает ошибку, если указан неправильный тип аргумента. См. Отчет о раковине ниже:Ruby: аргументы типа шашек, похожие на Cadence SKILL
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? То есть, в определении интерфейса метода, а не в теле, проверка типа выполняется?
Спасибо.
№ Руби не имеет встроенных аннотаций типа. –