From 491c44e984fa199bcfbf431c111533be86d56aa9 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 28 Feb 2016 01:20:39 +0000 Subject: [PATCH] Clarify set intersection and union documentation * array.c (rb_ary_and): clarify that set intersection returns the unique elements common to both arrays. * array.c (rb_ary_or): clarify that union preserves the order from the given arrays. - Most know what intersection means, but saying the operation excludes duplicates could be misleading ([1] & [1], duplicates excluded, might mean a result of []). - Instead, saying intersection returns the unique elements common to both arrays is more concise and less ambiguous. - The set union's documentation was incomplete in its describing preservation of order. Saying union preserves the order of the original array neglects the idea that the order of the elements in both arrays, as given, will be preserved. - Instead, saying set union preserves the order from the given arrays (and adding an example) fully demonstrates the idea. [Fix GH-1273] [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ array.c | 10 +++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4b02a6c976..52591cfaec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sun Feb 28 10:19:47 2016 Ryan T. Hosford + + * array.c (rb_ary_and): clarify that set intersection returns the + unique elements common to both arrays. + + * array.c (rb_ary_or): clarify that union preserves the order from + the given arrays. + Sat Feb 27 17:05:29 2016 Martin Duerst * enc/unicode/case-folding.rb, casefold.h: Reducing size of TitleCase diff --git a/array.c b/array.c index 5f4bfc6297..7d89285a8d 100644 --- a/array.c +++ b/array.c @@ -4098,13 +4098,12 @@ rb_ary_diff(VALUE ary1, VALUE ary2) * call-seq: * ary & other_ary -> new_ary * - * Set Intersection --- Returns a new array containing elements common to the - * two arrays, excluding any duplicates. The order is preserved from the - * original array. + * Set Intersection --- Returns a new array containing unique elements common to the + * two arrays. The order is preserved from the original array. * * It compares elements using their #hash and #eql? methods for efficiency. * - * [ 1, 1, 3, 5 ] & [ 1, 2, 3 ] #=> [ 1, 3 ] + * [ 1, 1, 3, 5 ] & [ 3, 2, 1 ] #=> [ 1, 3 ] * [ 'a', 'b', 'b', 'z' ] & [ 'a', 'b', 'c' ] #=> [ 'a', 'b' ] * * See also Array#uniq. @@ -4150,11 +4149,12 @@ ary_hash_orset(st_data_t *key, st_data_t *value, st_data_t arg, int existing) * ary | other_ary -> new_ary * * Set Union --- Returns a new array by joining +ary+ with +other_ary+, - * excluding any duplicates and preserving the order from the original array. + * excluding any duplicates and preserving the order from the given arrays. * * It compares elements using their #hash and #eql? methods for efficiency. * * [ "a", "b", "c" ] | [ "c", "d", "a" ] #=> [ "a", "b", "c", "d" ] + * [ "c", "d", "a" ] | [ "a", "b", "c" ] #=> [ "c", "d", "a", "b" ] * * See also Array#uniq. */