adds transcript for Hour 1 - min 5 - 7 ... man this I am slow at this!!
This commit is contained in:
@@ -1,9 +1,18 @@
|
||||
# Transcript [](https://github.com/rtfeldman/elm-workshop/issues)
|
||||
|
||||
> The purpose of this transcript is to:
|
||||
+ make the video content _accessible_ to visually impaired people.
|
||||
+ give non-english speakers a reference they can _read_ in case they don't understand anything that is said.
|
||||
+ let people run the content through a translation service when they _really_ don't understand...!
|
||||
+ make the video content ***accessible*** to **hearing impaired** people.
|
||||
+ give ***non-english speakers*** a reference they can _read_
|
||||
in case they **don't understand** what is being said.
|
||||
(_in some cases the speech is too fast..._)
|
||||
+ let people run the content through a ***translation*** service
|
||||
when they _really_ don't understand what has been said.
|
||||
This can often greatly enhance the learning experience for non-native learners.
|
||||
And if FrontendMasters ever decide to add a "_subtitles_" feature,
|
||||
having human-written transcript is still _much_ better than
|
||||
computer-generated subtitles.
|
||||
+ (100% Optional) ***enhance*** the content with hyperlinks on specific terms
|
||||
so people don't have to google for ages to understand things.
|
||||
|
||||
This is `elm`. I'm Richard Feldman @rtfeldman
|
||||
|
||||
@@ -189,7 +198,7 @@ That's _because_ this whole thing is an _expression_.
|
||||
|
||||

|
||||
|
||||
In `JavaScript` you can have
|
||||
In `JavaScript` you can have a
|
||||
[_ternary expression_](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)
|
||||
like this _instead_ of an `if`:
|
||||
```js
|
||||
|
||||
88
part1/transcript_b.md
Normal file
88
part1/transcript_b.md
Normal file
@@ -0,0 +1,88 @@
|
||||
`Day 1 Hour 1 - h1.mp4 @ 05:11`
|
||||
Now the _relevant_ part is that
|
||||
this entire chunk of code is an expression
|
||||
it evaluates to a single value which means it's "_portable_"
|
||||
you can pick it up and just drop it somewhere else
|
||||
and just say "`foo` equals `if quantity == 1 then singular else plural`..."
|
||||
you can do that anywhere you would have any single value
|
||||
you can just drop in this entire `if` expression
|
||||
perhaps with parentheses around it to disambiguate.
|
||||
And it's exactly the same thing with the ternary
|
||||
and so you need this both `if` and `else`
|
||||
because it needs to be _clear_ what value is going to be substituted in there
|
||||
if you do drop this in place of any other value.
|
||||
|
||||

|
||||
|
||||
So here's how function _calling_ works
|
||||
this was the code we had in "try `elm`"
|
||||
slightly below the definition of `pluralize`
|
||||
_calling_ a function is just done with
|
||||
[`whitespace`](https://en.wikipedia.org/wiki/Whitespace_character)
|
||||
so we are going to say `pluralize` followed by some `whitespace`
|
||||
followed by its' `arguments`.
|
||||
|
||||
Also note that there are no commas between the arguments
|
||||
so it's just `pluralize "leaf" "leaves" 1`
|
||||
the parentheses here in _this_ case are to disambiguate
|
||||
between two function calls that we are making
|
||||
so this right here, that's all one function call:
|
||||
|
||||

|
||||
|
||||
and this is actually a _second_ function call,
|
||||
we're calling a function called `text`:
|
||||
|
||||

|
||||
|
||||
and what we're _passing_ to `text` is the _result_ of
|
||||
calling `pluralize` passing `"leaf"` `"leaves"` and `1`
|
||||
|
||||
so this is calling a function (_`pluralize`_) passing 3 arguments:
|
||||

|
||||
|
||||
and this is calling another function (_`text`_) passing 1 argument:
|
||||

|
||||
|
||||
the one argument we are passing is the result of the other function.
|
||||
note that this is a case of the parentheses serving to disambiguate.
|
||||
if we did not have the parentheses here
|
||||
this would be indistinguishable from calling `text` passing in _four_ arguments.
|
||||
the first is the function `pluralize`
|
||||
and then `"leaf"` `"leaves"` and `1`
|
||||
is the other three.
|
||||
So parentheses for disambiguation
|
||||
but otherwise whitespace is just what you do for calling functions.
|
||||
|
||||
Finally we have at the top
|
||||
we have this `import Html` exposing `..`
|
||||

|
||||
we'll get into **modules** a little more later,
|
||||
but it's basically just saying:
|
||||
"_Hey, bring in the `Html` module and expose all of the stuff in there._"
|
||||
such as this `text` function and we will make use of those.
|
||||
|
||||
`Day 1 Hour 1 - h1.mp4 @ 07:15`
|
||||
OK, so "***why bother?***"
|
||||
|
||||

|
||||
|
||||
I just taught you a _bunch_ of new syntax,
|
||||
and showed you how you can write the same thing in `JavaScript`
|
||||
***why bother*** learning a _whole different language_...?
|
||||
is it just learning _syntax_ for _nothing_?
|
||||
|
||||
What can you do in `elm`, like what does it _get_ you that `Babel` does _not_?
|
||||
That's a _great_ question.
|
||||
So, let's say we've got this implementation
|
||||
and we `build` it and we're going to use it in `production`
|
||||
and _hopefully_ we write tests for it,
|
||||
_hopefully_ those tests do a good job covering the different cases.
|
||||
But let's say we make a _mistake_ in our implementation here:
|
||||
|
||||
So we're like:
|
||||
`pluralize "leaf" "leaves" 1`
|
||||
|
||||

|
||||
|
||||
and it gives us "leaf" down here
|
||||
Reference in New Issue
Block a user