forall符号:句点/点号代表什么意思?

8

句号/点号表示什么意思?

forall a. Num a => a -> a -> a

它仅仅是一个分隔符吗?

7
“它仅仅是一个分隔符吗?”是的。 - Alexis King
而且还是一个低优先级的。这比在它之后加上所有的东西都要好…… - Ray Toal
1个回答

15

是的,这只是一个语法分隔符。它将变量声明与变量使用分开,就像Lambda表达式中的->一样。它的意思是“这里结束了绑定”。我想编程语言的设计者选择使用.是因为它比较短,可以节省22个字符。


3
数学中的其他通常符号在编程时相当令人讨厌:forall a (Num a => a -> a -> a)forall a : Num a => a -> a -> a。这使我们只能使用 . - user1804599
@rightfold : 也不会太糟,我想。 - Benjamin Hodgson
4
许多数学家也这样做。问题在于,在类型理论、编程语言理论(在某种程度上还有范畴论)中,我们经常写许多“forall x:T, y:A->B, ...”这样的式子。“forall x:T: p(x)”看起来有些奇怪。历史上形成了一种趋势,使用“dot”分隔符从lambda演算中借用,“forall x:T. p(x)”。(我不知道是谁发起的,Peano/Russell 使用了点,但是使用方式不同)。Haskell 遵循了这个趋势(但没有逗号)。在计算机科学论文中,我经常看到点,但也使用其他符号。 - chi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接