连接
将集合连接成一个集合
ruby…
[1,2,3].concat([4,5]) # => [1, 2, 3, 4, 5]
clojure…
(concat [1 2 3] [4 5]) ;; => (1 2 3 4 5)
如果你想连接两个以上的集合,你会发现不同的语言有不同的方法。
ruby…
[1,2,3].concat([4,5]).concat([6]) # => [1, 2, 3, 4, 5, 6]
clojure…
(concat [1 2 3] [4 5] [6]) ;; => (1 2 3 4 5 6)
Lisp 风格自然地允许函数接受一个参数列表,因此非常适合连接。Ruby 的 concat 函数只接受一个参数,这可以看作是一个限制,但可以通过链接 concat 轻松解决。
支持中缀运算符的语言通常有一个运算符来连接集合,在 Ruby 中是“+”。
ruby…[1,2,3] + [4,5] + [6] # => [1, 2, 3, 4, 5, 6]
无论何时使用中缀运算符,都需要用括号将它们分组以使它们正确链接。
ruby…([1,2,3] + [4,5] + [6]).select(&:odd?) # => => [1, 3, 5]
与中缀运算符一样,它们除了在链的开头之外,效果都不好。