在Haskell(和 chicken scheme )可以声明约束类型, 例如 map :: (a -> b) -> [a] -> [b] 声明 map 将获取包含函数输入类型的列表,并返回包含函数输出的列表。
map :: (a -> b) -> [a] -> [b]
map
(declaim (ftype (function (function (a) b) (list a)) (list b) map))
“你不能那样做”将是一个令人满意的答案:)
不是在单个类型声明中。我们没有类型变量。