“What happened to your face?”
“Accident during a venture.”
“Well,” he poured two drinks and offered one. “I’m glad you’re safe.”
He took a seat across Vick and accepted it. “We need to get the system we found into the database.”
“Sure, we’ll get that in. Do you know what return type it had?”
“Seemed like a new one. I’m not sure if it was a function or method.”
“Speaking of functions,” he laughed, “I taught my class them today.” He was in the mood to meet his friend with a lighthearted story. Avoiding the reminder the day had set in front of them.
“Oh, yeah?” said Amare, feeling curious about his story. Vick never brought up his class, but for some reason it was different this year, and he too wished to forget about this day. “How’d it go?”
“Well, one of the students asked me if you could return a reference to a value. Then, another one asked if you could return a function. What are these kids? Where are they getting their questions from?”
“Did you teach them about delegates?”
“No way,” he shook his head. “Well, kind of, but that would be jumping way ahead.”
“It’ll get them venturing as soon as possible.”
“Yeah, I’ll teach them about classes soon, then send a request to Control.”
An open document on the desk consisted of code. “Is this the code you showed them?”
FLOAT ADD(FLOAT X1, FLOAT X2) {
RETURN X1 + X2;
}
“Yes, just a simple addition function. Takes two float parameters, returns a single float value. Funny thing is, someone asked if you could make a single function that can take any number of parameters instead of a set amount. And, another student answered that you could use an array for that.”
FLOAT ADD(FLOAT[] X) {
FLOAT VALUE = 0F;
FOREACH (FLOAT V IN X) {
VALUE += V;
}
RETURN VALUE;
}
“And then, I thought I had to explain what a ‘for each loop’ was, but they guessed that it would enumerate through the entire array. Basically a ‘no condition for loop,’ as one called it.”
“Did they use the word ‘enumerate’ to explain it, too?”
“No way,” he shook his head. “If that were the case, they’d be on an expedition right now.”
“Did they understand return types?”
“I explained to them that in this language, the ‘float’ before the name is its return type. Meaning, the function has to return a float. This could be any other data type, but for this, it was a float. And, when ‘return’ is called, the function stops executing and gives the caller the returned value. And then guess what?”
“What?” He leaned in.
“‘Does the return always need to be at the end?’ he said.”
“Who said?”
He pointed two fingers above his eyes. “The kid with the sharp brows.”
“What kid?”
If you stumble upon this narrative on Amazon, be aware that it has been stolen from Royal Road. Please report it.
“This kid,” he said and opened a document that listed pictures of the students alongside their names. “Roy.”
“Roy, what a conscientious kid!”
FLOAT ADDBELOWFIVE(FLOAT[] X) {
FLOAT VALUE = 0F;
FOREACH (FLOAT V IN X) {
VALUE += V;
IF (VALUE > 5F) {
RETURN -1F;
}
}
RETURN VALUE;
}
“So, I explained to them that there can be as many returns in the function, but the function must conclude by returning a float.” He rubbed his eyes to clean the escaping tears, both from the unexpected hilarity and sharp-wittedness. “They actually asked,” he continued, “if you could pass a function as a parameter because the square brackets on the array made it look like a function. They thought if an array can be passed in, maybe a function can be too.”
His spit went flying with his laughter. “A red herring landed them straight into advanced techniques? What did you tell them?“
“I explained to them that a function is like a class. Although, they had no idea what a class was. So, I explained to them that when I write ‘Console.WriteLine,’ the ‘Console’ part is referencing a class. The Console class contains functions within it. One of them is ‘WriteLine.’ I use that function to print text onto the screen. A function—and I probably jumped too ahead—is like a class. By putting parentheses at the end of a function’s name, you are calling it to be executed. It’s like writing the ‘WriteLine,’ but without a name of its own.”
“Did they figure out you can reference functions?”
He smiled as if he were caught. “Yes, yes they did. I told them that a function can be treated like any other variable. That the ‘type’ of a function is made of its return type and parameters. I quickly wrote an example for them.”
FLOAT ADD(FLOAT X1, FLOAT X2) {
RETURN X1 + X2;
}
FUNC
“I told them that in this language, a ‘Func’ is a type. I didn’t call it a delegate to not convolute the terminology, but yes, a ‘Func’ is a delegate which is a type. We give this Func three parameters, and the last parameter is the return type, whereas all the parameters before that are the parameters for the function. Hence, ‘float, float, float.’ Now, ‘add2’ can be executed like the ‘Add’ function by using parentheses.”
“Observant students!”
“They sure are.” He stood up and they both caught a glimpse of the date upon the desk as its screen went dark. “Anyway, lunch?”
A burrito filled with all sorts of vegetables, and on the opposite, a single sandwich. “Once we figure out where the system leads us, we can finally figure out who the caller is.” He sighed. “How long has it been?”
“Feels like a much longer time, but today marks four years.”
“Remember Dorothy?”
“Yeah, what about her?”
“Right,” he said and began playing with the onions inside the wrap.
Vick said nothing, not wanting to intrude on whatever it was Amare was feeling. He sniffed, and Vick saw the gleam in his eyes and how his thick brows frowned as he darted his head from one end of the cafeteria to the other. Held back those tears from flowing in the middle of the crowd. A dozen seconds passed and he was inclined to break the tension. “You—”
“I—”
“Loved—”
“Loved—”
“Her.”
“Her.”
They looked at each other and faintly smiled simultaneously, just as they had said those words. And, Amare turned away. “What made you think of her?”
“I saw a hand reach out to me through the hole in the sky.”
“Hole in the sky?”
“Yes,” he pointed up. “Above the clouds, from the stars.”
“In the gyroplane? When did it happen?”
“Yesterday, I went up there alone. I tried to reach for her but Rorohiko stopped me. I crashed onto the floor and had glass splinters fly into my face. Then, her light called out to me and I was able to pull myself up.” He paused to look up at the bright lights that were fifteen meters high. “The Cleaner-Lower,” he said. “She made it shine for me.”
The thought of a cleaning robot being his savior made Vick chuckle. “You’re a hopeless romantic.” Amare stared at the lights with a miserable smile, either taking his words seriously or not listening. “I’m kidding,” he said quietly. “Well, now I know what you meant by ‘accident,’” he said louder, trying to divert the situation from prolonged awkwardness.
“You’re eating that sandwich again.”
“Yes,” he said, caught off-guard by the sudden change in tone. “It’s quite delicious.”
“Don’t you ever get bored of it?”
“No. I mean, why change something that’s not broken?”
“To try something new, find something better.”
“I guess, but…”
“But?”
“I’m already eating this.”
“Next time!” he said a bit too loudly and it washed away every wrinkle of sadness from his face. “Next time I’ll prepare a tasty meal for you. How does that sound?”
“Yeah, yeah,” he said softly. “That sounds wonderful.”