{"action":"created","comment":{"url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/comments/68816058","id":68816058,"diff_hunk":"@@ -1,171 +1,192 @@\n # Tuples\n \n-<img src=\"http://i.imgur.com/gMMSTqF.jpg?1\" alt=\"Drawing\" style=\"width: 200px;\"/>  \n-\n+![Drawing](http://i.imgur.com/gMMSTqF.jpg?1)\n \n > A day without sunshine is like, you know, night. \n \n-## Learning Objectives - The student should be able to..\n+## Learning Objectives - The student should be able to...\n \n * Explain what a tuple is, how to create it, use it, break down its members.\n * Understand clearly the problem addressed below and how using a tuple solves it.\n * Create their own tuple in code.\n * Feel comfortable creating a function with the return type being a tuple.\n \n-## What the student can do at this point \n-\n-* Create variables and constants\n-* Is familiar with type annotations, type inference and string interpolation.\n-* Can create functions with return types.\n-* Is familiar with the String, Int, Double, and Bool type.\n-* Can perform arithmetic operations on Int and Double.\n-* Understands if and else clause statements.\n-* Can create and use Arrays.\n-* Can iterate over an Array using a for-in loop.\n-* Can iterate over an Array calling enumerate().\n-* Work with the following methods on arrays:\n-\t* append()\n-\t* insert(_:atIndex:)\n-\t* removeAtIndex()\n-\t* subscript syntax with arrays\n-\t* count\n-\t* isEmpty\n-\t* Optionals\n-\t\n-\n-## Outline / Notes\n-\n-*  What if we wanted to group multiple values into a single compound value. What does that even mean?\n-* When programming, there are times when you're creating a function where you want to return multiple values. For instance, if we were creating a function like this:\n+## The Point of Tuples\n+\n+<!-- I'm not sure how necessary this section is, given that a more practical example of tuples is given below. I thought it was a nice intro, but I'm okay with deleting it entirely, too. -->\n+\n+Consider a relatively simple data structure: A point in 2D space. You probably remember from geometry that such a point consists of two coordinates _(x,y)_ which together tell you where a point lies in a graph. Each individual value—_x_ and _y_—are important, but when you think of a point, you really think of these values together as _one unit_. An _x_ alone alone won't describe the location of a point. Nor will a _y_ value alone. You need both—together—to know where a point lies.\n+\n+What data structure would you use?\n+\n+You could use an array like you learned about in a previous unit, but an array doesn't really capture the _spirit_ of a 2D point. An array is more like a _list of things_. A 2D point is something special...it consists of multiple values, but those values are tied inextricably tied together and treated as a single unit.\n+\n+You could instead use another Swift data structure to represent a 2D point: a _tuple_.\n+\n+## Much Ado About Tuples\n+\n+Geometrical points are pretty abstract, so let's take a look at a more practical example. Say you were tasked with writing a function called `downloadImage(AtURL:)` that will download an image at a given URL, and return `true` if the image was downloaded. Your function might look something like this:\n \n ```swift\n-func downloadImageAtURL(url: String) -> Bool {\n-    \n-    // downloading image..\n-    \n-    // image download was a success\n-    \n+func downloadImage(atURL url: String) -> Bool {\n+    // TODO: Download image\n     return true\n }\n ```\n \n-* Easy enough, considering that instead of comments we have actual code that would go up to a server and download our image, but what if... there was a problem downloading this image and we want to return false if there was an issue. Well, that's easy enough:\n+Great! We can fill in the guts of that function later (much later, since actually downloading the image isn't terribly relevant to this lesson). Of course, you also have to deal with the case in which the image could _not_ be downloaded due to an error: No wireless network, invalid URL, or aliens are destroying Earth. Assume that the code you use to actually download the image gives you back an error in the form of a string detailing why the image failed to download. `downloadImage(atURL:)` will probably look something like this:\n \n ```swift\n-func downloadImageAtURL(url: String) -> Bool {\n-    \n-    // downloading image..\n-    \n-    // ERROR!. Error Message: \"Image no longer exists at that URL\".\n-    \n-    // if an error, we will return false, else we will return true\n-    \n+func downloadImage(atURL url: String) -> Bool {\n+    // TODO: Download image\n+    // if no error, return true\n+    // otherwise, get error string and return false\n     return false\n }\n ```\n \n-* But we have a problem..\n+Great! One little snag, though: That error message might be really useful to the code that called `downloadImage(atURL:)`, but right now it has disappeared, lost forever in the bowels of `downloadImage(atURL:)`. It'd be nice to return the error message string if the download fails, wouldn't it?\n+\n+Well, that's easy enough to do! Just return the string, right?\n+\n+```swift\n+func downloadImage(atURL url: String) -> Bool {\n+    // TODO: Download image\n+    // if no error, return true\n+    // otherwise, get error string and return false\n+    let error = \"Image no longer exists\"\n+    return error\n+}\n+```\n+\n+Great! Err...not so great, actually. The function is supposed to return a `Bool`, but now it is returning a `String`, and that's not possible in Swift. That code won't even compile! And even if it could, you'd still like to also return `false` if the image download fails. Really, you need to be able to return two _values_ from a function: One of type `Bool`, indicating success or failure of the function, and one of type `String`, with a message indicating why the function failed (and some other positive affirmation if the function succeeds).\n+\n+But how can you do that?\n+\n+When you think about it, what you're trying to do is a little bit like representing a 2D point: You want to have _two_ values that are treated as _one_ unit (since a function can only return _one_ thing).\n+\n+You want to return a tuple.\n+\n+In Swift, a tuple is a funny word (seriously, it doesn't exactly [roll off the tongue](https://www.youtube.com/watch?v=7fTVCQRQYXk)) that describes a structure in which multiple values are grouped together as one. Like a 2D point! Or like returning a boolean and an error message as one unit.\n+\n+The type of a Swift tuple is described by putting the type of each of its parts in parentheses, separated by commas. For example, a 2D point consists of two `Int`s grouped together, and would look like this in Swift:\n+\n+```swift\n+let p1: (Int, Int) = (1, 2)\n+```\n \n-![Baby Problem](https://media.giphy.com/media/9TtwPvGwQB8QM/giphy.gif)\n+Take special note of the `(Int, Int)` part. In plain English, that means, \"a tuple consisting of two `Int`s.\"\n \n-* That error message is useful to us! We want to know why the image failed to download. We might want to display this information to the user of our app... telling them \"Hey! This image didn't download for this specific reason\" then supply them with the reason. Or.. we might have a button that allows the user to try downloading the image if there was a problem. But... with an error message like \"This image doesn't exist at this location, we might then disable the button which will not allow the user to make an attempt to download the image.\n+On the other hand, a tuple consisting of a boolean and a string would look like this:\n \n-* So we're in a position where we want to send multiple values back in this function. If there was an error downloading the image, we would like to send back two values. One of type `Bool` indicating the success or failure of the download and one of type `String` which represents the error message.\n+```swift\n+let x: (Bool, String) = (false, \"Image no longer exists at URL\")\n+```\n \n-* How you solve that problem in Swift is with `Tuple`'s. A funny word no doubt. I suggest watching this [Video](https://www.youtube.com/watch?v=7fTVCQRQYXk) to see how you pronounce it.\n+Again, the relevant bit here is `(Bool, String)`, which means \"a tuple consisting of a `Bool` and a `String`.\n \n-![Huh](https://media.giphy.com/media/gKsJUddjnpPG0/giphy.gif)\n+Knowing that, let's rewrite `downloadImage(atURL:)` so it returns a tuple instead of just a `Bool`. Here's what your rewritten function would look like (without all the cool downloading code written yet):\n \n ```swift\n-func downloadImageAtURL(url: String) -> (success: Bool, errorMessage: String) {\n-    \n-    // downloading image..\n-    \n-    // ERROR!. Error Message: \"Image no longer exists at that URL\".\n-    \n-    return (false, \"Image no longer exists at that URL\")\n+func downloadImage(atURL url: String) -> (Bool, String) {\n+    // TODO: Download image\n+    // if no error, return true\n+    // otherwise, get error string and return false\n+    let error = \"Image no longer exists\"\n+    return (false, error)\n }\n ```\n \n-* We just created our first `Tuple`.\n-* Notice the difference in the return type. It now looks almost identical to a function you made that takes in multiple arguments, except without the keyword `func` and the name of your function. `(success: Bool, errorMessage: String)` is **NOT** a function though, this is a `Tuple` and it's just like any other type you've worked with so far.\n-* You can think of a tuple as being a container of other types except it represents one value that could be stored inside of a variable. Well what does that mean?\n+Take particular notice of the return type. It changed from `Bool` to `(Bool, String)`. That kind of looks almost like a function argument list, doesn't it? Well, looks can be deceiving. A tuple doesn't really have anything to do with a function argument list; it just shares a similar syntax. It's a type unto itself, just like `Bool` and `String` and `Int` are types.\n+\n+Notice, too, how the `return` statement changed. It says `return (false, error)` now. That's how you create a tuple: By putting all of its values in parentheses, separated by commas. Pretty easy, right? In fact, it doesn't look that much different than the way you wrote out 2D points in geometry class—because it's not really that different at all!\n \n-![Tuple](http://i.imgur.com/aUkUJnF.png?1)\n+## Accessing Elements of a Tuple\n+\n+Okay, so you have a tuple. How do you access its individual elements?\n+\n+Say you wrote some code to call your `downloadImage(atURL:)` function and saved it in a variable:\n+\n+```swift\n+let result = downloadImage(atURL: \"http://example.com/image.png\")\n+```\n \n-* Here we declared a constant named 'person' to be of type (`String`, `Int`) which is a tuple. The `person` variable is storing two values, it has two pieces of information in it, a name (of type `String`) and an age (of type `Int`). How do we access that info?\n+How would you get the first component—the `Bool` that tells you if the image was downloaded or not?\n \n-* If you were to open a playground file and include that code above creating the person variable you would see the following. On the line(s) below where you declared the `person` variable, if you were to type out `person` followed by a `.` you would see the following two options (which would auto-complete for you if selected). \n+It's pretty easy. You type the constant's or variable's name, followed by a dot (`.`), and then a number representing the _position_ of the individual value you want. You can see this pretty clearly if you type `result.` and let Xcode do the autocompletion for you:\n \n-![TupleMembers](http://i.imgur.com/4r9FimF.png?1)\n+![Tuple autocomplete](http://i.imgur.com/YdlVEbS.png)\n \n-* We know by reading this, that by accessing age in this manner, a value of type `Int` will be returned to us (which we could store in another variable or just print to the console).\n+Fields in a tuple are numbered starting at 0, so `0` is the first field, `1` is the second, and so forth.\n \n-* Lets try this out:\n+This code will grab the result of `downloadImage(atURL:)`, then print \"Success? false\" and the error message to the console:\n \n ```swift\n-let ageOfPerson = person.age   // 30\n-let nameOfPerson = person.name // \"Jim\"\n+let result = downloadImage(atURL: \"http://example.com/image.png\")\n+print(\"Success? \\(result.0)\")\n+// prints \"Success? false\"\n+print(\"Message: \\(result.1)\")\n+// prints \"Message: Image no longer exists\"\n+```\n+\n+### Naming Elements\n \n-print(\"My name is \\(nameOfPerson) and I am \\(ageOfPerson) years old.\")\n-// prints \"My name is Jim and I am 30 years old.\"\n+`result.0` and `result.1` doesn't tell you much about the elements of the tuple, does it? It might be hard to remember which value is in which position. The elements of a tuple can also be named. You give them names when you create the tuple:\n \n-print(person)\n-// prints \"(\"Jim\", 30)\"\n+```\n+let person = (name: \"Jim\", age: 30)\n ```\n \n-* You're starting to understand tuples.\n+You can now access the individual parts of the tuple by their names (`name` and `age`) instead of using numbered fields. Again, Xcode's autocomplete will help you out here:\n \n-![Jake](https://media.giphy.com/media/daUOBsa1OztxC/giphy.gif)\n+![Tuple autocomplete with named fields](http://i.imgur.com/tpeouX1.png)\n \n-* **BUT** what if we wanted to change one of the two values in that `person` tuple we made above? Is this possible?\n+Now you can access individual parts of the tuple in a much more readable way:\n \n ```swift\n-person.name = \"Bran\"\n+let person = (name: \"Jim\", age: 30)\n+print(\"\\(person.name)'s age is \\(person.age)\")\n+// prints \"Jim's age is 30\"\n ```\n \n-* Now, the name of person should be \"Bran\". Right? Think about this, should the complier **ALLOW** us to do this? What would disallow something like this to occur, considering we're about to **change** the value of this `person` constant to another value.\n-* If you recognized the problem being that we declared our `person` constant with `let` thus making it a constant, kudos! Let's create another tuple, but this time declaring it as a variable so we can change one of the values within it.\n+Notice, too, that Xcode's autocomplete also lets you know the _type_ of each field: `name` is a `String` and `age` is an `Int`. This information can be very useful when working with tuples.\n+\n+### Changing Values\n+\n+Say you created this tuple:\n \n ```swift\n-var friends = (best: \"Bubblegum Princcess\", worst: \"Jake\")\n+let person = (name: \"Jim\", age: 30)\n ```\n \n-* But what if Finn has now become my new best friend.\n+You then realize that Jim is actually 32 (he's been lying about his age all along). You want to update that information. How would you do that? Would the following code work?\n \n ```swift\n-friends.best = \"Finn\"\n-\n-print(\"My best friend is \\(friends.best) and my worst friend is \\(friends.worst).\")\n-// prints \"My best friend is Finn and my worst friend is Jake.\"\n+let person = (name: \"Jim\", age: 30)\n+person.age = 32\n ```\n \n-* Lets go back to to the original problem now. If we were to call on this function, we know through its return type that we're to expet back a tuple of type (`Bool`, `String`). Lets try it out:\n+_Should_ it work? Think back to what you know about constants and variables. `person` was declared as a constant (using the `let` keyword). If you tried this code out in a playground (you should!), you'll probably notice that the playground won't let you change the value of `person.age`—it tells you that `person` is a \"let\" constant.\n \n-![downloadImage](http://i.imgur.com/gatoOEI.png?1)\n+Which makes sense, right? Constants can't change, and when you create a constant tuple, the individual parts of the tuple are considered to be constants, too. How could you fix this so that you _can_ change the individual elements?\n \n-* Here we called on the function `downloadImageAtURL()` and received back a tuple of type (`Bool`, `String`) and stored that inside of a constant named `imageDownload`.\n-* So now we can access these two values within the `imageDownload` variable to see if our image succesfully downloaded and if not, then see what the problem is.\n+If you guessed \"declare it to be a _variable_,\" you're right. When a constant is declared as a _variable_ (using the `var` keyword), its individual parts are variables, too, and you can change them. This code will work:\n \n ```swift\n-let imageDownload = downloadImageAtURL(\"http://www.apple.com/iPhone7\")\n-\n-if imageDownload.success {\n-    // image download was a success\n-    // display the new image to the user\n-} else {\n-    // image download DID NOT SUCCEED\n-    // display the error message to the user\n-    \n-    print(imageDownload.errorMessage)\n-}\n-\n-// prints \"Image no longer exists at that URL\"\n+var person2 = (name: \"Jim\", age: 30)\n+print(\"\\(person2.name)'s age is \\(person2.age)\")\n+// prints \"Jim's age is 30\"\n+person2.age = 32\n+print(\"\\(person2.name)'s age is \\(person2.age)\")\n+// prints \"Jim's age is 32\"\n ```\n \n-* In this code above, we're checking to see if the image we're attempting to download was successful by checking the `Bool` value stored in the `imageDownload` constant. If `imageDownload.success` is `true` **THEN** display the image to the user **ELSE** (if the value of `imageDownload.success` is `false`) then display the error message to the user. We're also printing the message to the console by passing in `imageDownload.errorMessage` to the `print()` function as `imageDownload.errorMessage` is of type `String`.\n+Often times, tuples are constant. They're basically just containers for data, and that data doesn't generally change once a tuple has been created. But now you know that you _can_ change the elements if you want to.\n+","path":"README.md","position":286,"original_position":286,"commit_id":"4ac3e34a503e2b8c1fecbae52a3c73bc53cb10ac","original_commit_id":"4ac3e34a503e2b8c1fecbae52a3c73bc53cb10ac","user":{"login":"JimCampagno","id":10253984,"avatar_url":"https://avatars.githubusercontent.com/u/10253984?v=3","gravatar_id":"","url":"https://api.github.com/users/JimCampagno","html_url":"https://github.com/JimCampagno","followers_url":"https://api.github.com/users/JimCampagno/followers","following_url":"https://api.github.com/users/JimCampagno/following{/other_user}","gists_url":"https://api.github.com/users/JimCampagno/gists{/gist_id}","starred_url":"https://api.github.com/users/JimCampagno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JimCampagno/subscriptions","organizations_url":"https://api.github.com/users/JimCampagno/orgs","repos_url":"https://api.github.com/users/JimCampagno/repos","events_url":"https://api.github.com/users/JimCampagno/events{/privacy}","received_events_url":"https://api.github.com/users/JimCampagno/received_events","type":"User","site_admin":false},"body":"This section was perfect.","created_at":"2016-06-28T18:35:04Z","updated_at":"2016-06-28T18:35:04Z","html_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme/pull/1#discussion_r68816058","pull_request_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/comments/68816058"},"html":{"href":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme/pull/1#discussion_r68816058"},"pull_request":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1","id":75417212,"html_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme/pull/1","diff_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme/pull/1.diff","patch_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme/pull/1.patch","issue_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/1","number":1,"state":"open","locked":false,"title":"First draft of tuples lesson","user":{"login":"mdippery","id":22942,"avatar_url":"https://avatars.githubusercontent.com/u/22942?v=3","gravatar_id":"","url":"https://api.github.com/users/mdippery","html_url":"https://github.com/mdippery","followers_url":"https://api.github.com/users/mdippery/followers","following_url":"https://api.github.com/users/mdippery/following{/other_user}","gists_url":"https://api.github.com/users/mdippery/gists{/gist_id}","starred_url":"https://api.github.com/users/mdippery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mdippery/subscriptions","organizations_url":"https://api.github.com/users/mdippery/orgs","repos_url":"https://api.github.com/users/mdippery/repos","events_url":"https://api.github.com/users/mdippery/events{/privacy}","received_events_url":"https://api.github.com/users/mdippery/received_events","type":"User","site_admin":false},"body":"One note: I left out the bit about modifying the `downloadImage(atURL:)` function to return a tuple with named elements. In my testing, I couldn't get this to work:\r\n\r\n```swift\r\nfunc downloadImage(atURL url: String) -> (Bool, String) {\r\n    return (success: false, errorMessage: \"Image no longer exists\")\r\n}\r\n\r\nlet result = downloadImage(atURL: \"http://example.com/image.png\")\r\nprint(\"Success? \\(result.success)\")\r\nprint(\"Message: \\(result.errorMessage)\")\r\n```\r\n\r\nMaybe I did something wrong, but when I tried that out in a playground, Xcode wouldn't let me do `result.success` and `result.errorMessage`—it would only let me do `result.0` and `result.1`. I _think_ maybe named fields don't survive outside of the scope they're in? Or Xcode can't infer named fields from a function declaration, and named fields don't actually carry through as part of the data structure? I'd have to delve into the inner workings of tuples to confirm, but I imagine that's the case. Regardless, I figured it could be left out. I talk about named fields elsewhere and it didn't seem important to force it with this example.\r\n\r\nI like the `downloadImage(atURL:)` example, though. I think this can be neatly revisited in the lesson on structs or enums. The Haskell/Scala programmer in me pretty quickly saw that this would be better represented using something like Haskell's and Scala's `Either` type, which could be mimicked in Swift like this:\r\n\r\n```swift\r\nenum Either {\r\n    case Left(String)\r\n    case Right\r\n}\r\n\r\nfunc downloadImage(atURL url: String) -> Either {\r\n    return .Left(\"Image no longer exists\")\r\n}\r\n\r\nlet result = downloadImage(atURL: \"http://example.com/image.png\")\r\nif case .Left(let errorMsg) = result {\r\n    print(\"Could not download image: \\(errorMsg)\")\r\n} else {\r\n    print(\"Image downloaded!\")\r\n}\r\n```\r\n\r\nSo I think that could be a way to revisit this lesson later on.\r\n\r\ncc: @JimCampagno @AnnJohn ","created_at":"2016-06-28T04:35:35Z","updated_at":"2016-06-28T18:35:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"557c44b8a661627d1b67036d8efcaf6ac4712f53","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1/commits","review_comments_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1/comments","review_comment_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/comments{/number}","comments_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/1/comments","statuses_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/statuses/4ac3e34a503e2b8c1fecbae52a3c73bc53cb10ac","head":{"label":"learn-co-curriculum:mdippery","ref":"mdippery","sha":"4ac3e34a503e2b8c1fecbae52a3c73bc53cb10ac","user":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"repo":{"id":60645991,"name":"swift-tuplesReading-readme","full_name":"learn-co-curriculum/swift-tuplesReading-readme","owner":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme","description":null,"fork":false,"url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme","forks_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/forks","keys_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/keys{/key_id}","collaborators_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/teams","hooks_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/hooks","issue_events_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/events{/number}","events_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/events","assignees_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/assignees{/user}","branches_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/branches{/branch}","tags_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/tags","blobs_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/refs{/sha}","trees_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/trees{/sha}","statuses_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/statuses/{sha}","languages_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/languages","stargazers_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/stargazers","contributors_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/contributors","subscribers_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/subscribers","subscription_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/subscription","commits_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/commits{/sha}","git_commits_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/commits{/sha}","comments_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/comments{/number}","issue_comment_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/comments{/number}","contents_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/contents/{+path}","compare_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/compare/{base}...{head}","merges_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/merges","archive_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/downloads","issues_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues{/number}","pulls_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls{/number}","milestones_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/milestones{/number}","notifications_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/labels{/name}","releases_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/releases{/id}","deployments_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/deployments","created_at":"2016-06-07T20:58:24Z","updated_at":"2016-06-07T20:58:24Z","pushed_at":"2016-06-28T04:35:35Z","git_url":"git://github.com/learn-co-curriculum/swift-tuplesReading-readme.git","ssh_url":"git@github.com:learn-co-curriculum/swift-tuplesReading-readme.git","clone_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme.git","svn_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme","homepage":null,"size":12,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"learn-co-curriculum:master","ref":"master","sha":"24085213e322e8128ba71143840323b937c7a6df","user":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"repo":{"id":60645991,"name":"swift-tuplesReading-readme","full_name":"learn-co-curriculum/swift-tuplesReading-readme","owner":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme","description":null,"fork":false,"url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme","forks_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/forks","keys_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/keys{/key_id}","collaborators_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/teams","hooks_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/hooks","issue_events_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/events{/number}","events_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/events","assignees_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/assignees{/user}","branches_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/branches{/branch}","tags_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/tags","blobs_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/refs{/sha}","trees_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/trees{/sha}","statuses_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/statuses/{sha}","languages_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/languages","stargazers_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/stargazers","contributors_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/contributors","subscribers_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/subscribers","subscription_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/subscription","commits_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/commits{/sha}","git_commits_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/git/commits{/sha}","comments_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/comments{/number}","issue_comment_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/comments{/number}","contents_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/contents/{+path}","compare_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/compare/{base}...{head}","merges_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/merges","archive_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/downloads","issues_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues{/number}","pulls_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls{/number}","milestones_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/milestones{/number}","notifications_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/labels{/name}","releases_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/releases{/id}","deployments_url":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/deployments","created_at":"2016-06-07T20:58:24Z","updated_at":"2016-06-07T20:58:24Z","pushed_at":"2016-06-28T04:35:35Z","git_url":"git://github.com/learn-co-curriculum/swift-tuplesReading-readme.git","ssh_url":"git@github.com:learn-co-curriculum/swift-tuplesReading-readme.git","clone_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme.git","svn_url":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme","homepage":null,"size":12,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1"},"html":{"href":"https://github.com/learn-co-curriculum/swift-tuplesReading-readme/pull/1"},"issue":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/1"},"comments":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/learn-co-curriculum/swift-tuplesReading-readme/statuses/4ac3e34a503e2b8c1fecbae52a3c73bc53cb10ac"}}}}
{"actor":{"display_login":"JimCampagno"}}