Now, using the first name variable and the last name variable, we can combine it with the [scratchblocks] (join [hello•] [world]::operators)[/scratchblocks] block. Using the left and right arrows will add/remove an input slot.
@vanzie: I'm about to deliver a long rant to the other people who've suggested answers to your question. What follows is not for you, so please don't be scared away by it!
I have removed a conversation between @mr_owlssssnap2 and @ego-lay_atman-bay displaying a complete solution to this homework problem. Both of you should know better — in fact ego-lay_atman-bay does know better, and, ironically, said so earlier in this thread. @slate_technologies made an even worse version of this by linking to a runnable project.
But ego-lay_atman-bay is right to point out that y'all are making this much more complicated than necessary. To everyone who's replied this is an easy problem, but the OP is a beginner and it's not easy for them. I imagine that the overall effect of this thread is that the OP has been scared away and will never ask for help on the forum again! So for example let me pick on @joecooldoo for a change: If you look back at the OP's screenshot, it should be clear that they already know how to make a variable; that's not what they're having trouble with. What they need help with is one or more of three things:
how to find the first letter of a word
how to combine two first letters into a two-letter word
how to use composition of functions to combine those two steps
The first two of those things are just a matter of finding the right primitive block. When ego-lay_atman-bay said "Maybe check the operators category" that was a good hint (although I would have capitalized Operators to make it clearer that that's a thing) supposing it's either or both of those two problems. (@earthrulerr said the same thing, but loses points for not reading the entire thread before responding.)
But nobody said anything that would help if the OP's problem is about composition of functions. To an experienced Snap!per that's so habitual as not to feel like a thing at all, but I think it's a very likely issue for a beginner. But, even more important, we're all guessing; it's not clear from what the OP said what's the problem they're confused about. (But note that they did say that they're confused about something, and not merely ignorant of the relevant primitive blocks; that's what it means when they complain about their teacher not explaining the problem well.)
This is where I have the advantage over y'all of being a trained and experienced teacher; I know that almost always, the best way to answer a question is with a question:
I didn't explicitly address the third possibility, because to say "do you understand composition of functions?" to a beginner would just scare them away. But if the OP answered the two questions I did ask, that would help us infer whether they have a problem about composition of functions.
I had to think about whether to say "text string" or "word." The latter is my instinct, both because I'm a Logo person and because "text string" is formal CS jargon whereas everyone knows what a word is. But in the end I went with "text string" because it's more likely to be what the OP's teacher says in class.
I also don't know what the teacher wanted this exercise to teach. If I were the teacher, and I had assigned this problem, it would be entirely to teach composition of functions, and so if the OP just doesn't know where the primitives are, I'd show them. But maybe the teacher intends this problem as a sort of scavenger hunt for primitives, on the (correct) theory that kids will learn the primitives better if they find them themselves than if someone just tells them. I wouldn't use this problem for that purpose myself, because another thing I learned in teacher school is that a problem should just present one new idea, not two at once. So for a scavenger hunt I'd make a table with headings INPUT, OUTPUT, and BLOCK, and one row of the table would have "emily" and "e" in the first two columns, and the student's task would be to fill in the third column. This is why it's especially good to answer a question with a question when you're not the OP's teacher. If I recognized the exercise as coming from BJC, as sometimes happens on the forum, I would be confident about what the kid is supposed to be learning from the exercise because I'd know the context, where the exercise appears in the course.
And if y'all had refrained from pitching in, the OP might by now have answered my questions, and we'd all know what help they need.
I absolutely agree with you. I did actually post my solution practically right after I got back from marching band, so my mind was not in the right place. I apologize for that. And thanks for clearing this up.
I included that because sometimes teachers give you pre-built projects that you need to complete (I know this because I took a coding class at our local library once)
But after taking all those screenshots, I got a little lazy and didn't go into detail. My mistake.
The best thing is to think of a good question to ask. Either something to clarify for you what's standing in their way, or, if you're pretty sure you know that (e.g. because six other people have had the same question), something to clarify for them a step between what they know and what they're supposed to learn.