Почему аргументы функций — не «цвета функций»

Function Arguments Are Not Function Colors

В статье разбирается популярная аналогия «цветов функций» из эссе 2015 года и опровергается утверждение, что аргументы функций (например, context.Context в Go) можно считать такими же «цветами». Автор предлагает формальный критерий: «цвет» — это изменение, которое при распространении вверх по стеку вызовов не может быть инкапсулировано промежуточными функциями, в отличие от обычных изменений параметров. На примерах Go, JavaScript и Haskell (STM) показано, что асинхронность не всегда является «цветом», а аргументы — почти никогда.

Любое изменение функции с «цветной» формой зависимостей — это цвет; любое изменение функции, имеющее форму связного списка, — не цвет.

Ещё за этот день

2026-09-08