Dubious Wording in Saddle Points Exercise

The “Saddle Points” exercise description says,


A good tree is both:

taller than every tree to the east and west, so that you have the best possible view of the sunrises and sunsets.

shorter than every tree to the north and south, to minimize the amount of tree climbing.

and that


An acceptable tree will be the largest in its row, while being the smallest in its column.

But then the tests (TypeScript and C#, at least) include tests that expect the program to identify multiple saddle points in a row or in a column, meaning that there can be other trees of the same height in the row or column. Maybe I’m being pedantic, but the difference between “greater/less than” and “greater/less than or equal to” strikes me as kind of important to a programmer.

Anyway, if PRs were allowed, I’d create one changing the description to:


A good tree is both:

Taller than or the same height as every tree to the east and west, so that you have the best possible view of the sunrises and sunsets.

Shorter than or the same height as every tree to the north and south, to minimize the amount of tree climbing.

and


An acceptable tree will be the no smaller than any other tree in its row, while also being no larger than any tree in its column.

(cc @ErikSchierboom)

Given how many times the wording here was word smithed, I’m wondering if we need more than one sentence per requirement. Or more verbose sentences.

@padeso’s proposal:

 A good tree is both:

-taller than                       every tree to the east and west,
+Taller than or the same height as every tree to the east and west,
 so that you have the best possible view of the sunrises and sunsets.

-shorter than                       every tree to the north and south,
+Shorter than or the same height as every tree to the north and south,
 to minimize the amount of tree climbing.
-An acceptable tree will be the largest                        in its row,
+An acceptable tree will be the no smaller than any other tree in its row,
-while      being the smallest            in its column.
+while also being no larger than any tree in its column.

Alternative proposal:

 A good tree is both:

-- taller     than every tree to the east and west,
+- no shorter than any   tree to the east and west,
   so that you have the best possible view of the sunrises and sunsets.
-- shorter   than every tree to the north and south,
+- no taller than any   tree to the north and south,
   to minimize the amount of tree climbing.
-An acceptable tree will be the largest           in its row,
+An acceptable tree will have the greatest height in its row,
-while being the smallest      in its column.
+while having the least height in its column.

I might well be unusual in this regard, but this could actually make it more difficult to understand for me and other people like me (though probably a strong minority). I’m not dyslexic, but I have some trouble reading nonetheless, and succinctness helps a lot.

I was pretty frustrated when my solution was failing the tests because I specifically crafted it to discard the point whenever there is a tree of the same height in the same row/column.

If you don’t want to change the wording, then at least provide an example in the problem description that clearly shows multiple saddle points in the row/column.

1 Like

100%. This was my first Exercism exercise and the fact that the description contradicted the tests led me to question Exercism’s level of quality control in general. Clarifying the description, as multiple commenters have suggested, would be an easy fix.

@MatthijsBlom Want to PR those changes? I’m happy with them.

I prefer @padeso’s wording, except for this typo:

The alternative wording, “An acceptable tree will have the [greatest/least] height in its [row/column]”, is logically correct but easier to misinterpret.