这篇文章想拆开一个吵了很多年的说法:函数的参数算不算函数的颜色。颜色的意思是,一个函数一旦变成异步,调用它的每一层都被迫跟着变,逃不掉。作者说,大部分参数不算颜色,因为改动往往能在中途被拦住。他举Go语言的例子,给函数加一个上下文参数,理论上要一路往上传。但实际上任何调用者都能造一个空上下文糊弄过去,改动根本传不到顶层。真正躲不掉的颜色是Haskell语言里的输入输出类型,沾上就甩不掉。评论区有人反驳,按这个定义,只要一门语言允许把执行器当参数传来传去,连异步都不算颜色了,这套框架好像怎么定义都行。