没有理由不能。
Haskell 没有用于方法参数的逗号,但它用于数组元素分隔。
Smalltalk 根本没有逗号,因为它们在 Ruby 中是如何存在的。鉴于 Ruby 受到 Smalltalk 的影响,添加逗号似乎是一种经过深思熟虑的语言选择。(再说一次,Smalltalk 的参数列表样式更像是传递带有参数的散列,但仍然没有逗号。)
不过,Ruby 确实有使用文字的无逗号数组:
%w[I don't have any commas!] #=> ["I", "don't", "have", "any", "commas!"]
最终,我认为要问的问题是逗号是否会使事情更清晰,更容易在心理上解析。例如,这是多么清楚:
foo bar baz
是foo (bar baz)
,还是foo (bar (baz))
?或者甚至((foo) bar) baz)
(尽管这在非功能语言中可能没有多大意义)?虽然显然知道优先级可以让您弄清楚这一点,但这也意味着您可能必须更频繁地包含括号,而逗号则区别很明显:
foo bar baz # foo(bar(baz))
foo bar, baz # foo(bar, baz)
显然,在 Ruby 中省略括号有时也会导致歧义,但通常会导致语法错误,而不是依赖于事物的优先级。
最终,这是 Matz 等人做出的语言选择。没有理由不这样做,这只是他们认为最有意义的。