This lesson extends upon our knowledge of semigroups and shows viewers how to create Any
and All
semigroups which provide us with an interface for comparing boolean
values.
Thomas Greco: [0:01] On this page, I'm just going to create an Any and an All semigroup. I'm just going to scaffold out the shell for both.
[0:14] Inside of our Any, the first thing we're going to do is set the value, as always. Then below this, we're just going to add a concat function which is going to use the || operator to check for truthiness in either the current value as well as the value that it's being concatted with.
[0:38] Below, we're going to do the same for our All semigroup. However, this time we're going to use the logical && operator as we're going to need truthiness in both of these values in order for this to return true.
[0:58] Now that we have those set up, I'm just going to copy our minTest and maxTest variables, paste them down here. Instead, I'm going to change their names to allTest and anyTest.
[1:14] Inside of our allTest, we're going to change all of our Maxes to All. We're going to pass in false into our first All, and then false to our second All as well. Last thing we're going to do, let's just pass in a true. For anyTest, copy this line down here, and then our Alls to Any.
[1:47] Now if we run this...Oh, we need to log them out. If we run this, we see that we get a false for our allTest and a true for our anyTest.
[2:10] As we know, our allTest is going to need truthiness in all of our values. Therefore, we'll only get a true if we set all of these to true. Now if we run this again, boom, we see that we're getting true for both.
[2:27] If we change our last Any to take the value of false, we'll see that this now prints out false as we have no truthiness in any of these. If we set all these values to true, obviously we're going to get a true back.