Некоторые языки, такие как Python, поддерживают аргументы ключевых слов:
def foo(a: int, b: int, c: int):
return a + 2*b + 3*c
foo(a=1, c=2, b=3)
Python вместе с mypy можно считать статически типизированным языком.Однако тип foo
равен Function[[int, int, int], int]
, который не содержит никакой информации об аргументах ключевых слов.Учитывая значение с этим типом, не существует безопасного типа для его вызова с аргументами ключевых слов.
Существуют ли языки со статическим типом, которые поддерживают первоклассные функции и аргументы ключевых слов, и которые имеют достаточно богатые типы функцийобрабатывать аргументы ключевых слов?