exercism / problem-specifications

Shared metadata for exercism exercises.
MIT License
320 stars 539 forks source link

Exercise asks developer to write a function #2396

Open kotp opened 5 months ago

kotp commented 5 months ago

Having an exercise direct a student to write a function or write a method or write "some specific structure" can be confusing when the language they are solving the exercise in does not have that structure.

Where we say things like "Create a function" or "Write a function" we could be indicating that we need a solution instead. This will encourage the student to determine what that solution is, rather than us telling them to specifically create a function.

Unless the exercise is a concept exercise about functions, of course, then the student should be told to create a function.

The exercises that mention "create a function" are:

And the exercises that mention "Write a function" are:

ref: exercism/ruby#1638-comment

glaxxie commented 4 months ago

I accidentally clicked on the checkbox, I apologize if it triggers anything.

BNAndras commented 4 months ago

Sigh. I didn’t mean to close the issue. Stupid thumbs on a small screen.

jiegillet commented 4 months ago

Has this been linked to students actually being confused? The semantic difference seems so small to me, I wouldn't want to spend time and energy on a non-issue.

kotp commented 4 months ago

Has this been linked to students actually being confused? The semantic difference seems so small to me, I wouldn't want to spend time and energy on a non-issue.

Yes, I can see how the meaning shift can be small for someone that is used to hearing it misused as often as I can imagine someone with your experience as having. We learn to "you mean this, but said that, I will not mention the difference in meaning" and we can definitely function like that. That is not really kind, but it is something that happens fairly often. They will continue to say things that they really do not mean to say, and it will likely not cause a problem.

But when someone is looking at how to make a function in a language that does not have them, how do they find what they can not find? They have to, a bit clumsily, choose to ignore the meaning of the word and find the closest thing they can to do what was asked of them.

Semantics are all we have at the end of the day, the meaning of words. So even small differences make a big difference, especially when it is something that is at the very core of certain languages, and non-existent in others.

jiegillet commented 4 months ago

In general, I agree with you, but has this specific case been linked to students actually being confused?

kotp commented 4 months ago

In general, I agree with you, but has this specific case been linked to students actually being confused?

This specific case? I listed 10, and that covers 65 languages, some of which do not have functions, so I am just as confused this second time reading that as I was the first time it was asked.

So no, this is not a specific case being brought up.

MatthijsBlom commented 4 months ago

has this specific case been linked to students actually being confused?

This forum thread looks like an instance: Is a string value in Haskell a function? I vaguely remember this having come up other times as well. Also, there once was #1850.

DazSanchez commented 3 months ago

@kotp Could you update the status of this issue to Close if the related PR addresses the original problem?

kotp commented 3 months ago

@kotp Could you update the status of this issue to Close if the related PR addresses the original problem?

I could, but there are still more to address. Some of them have been. (Not sure why none of them are checked off from the checkboxes, though, I think that is not reserved just for me to do).

But if Isaac is happy to close this issue that is fine, as that does not mean that we can not address the rest of them that are still pending.

Definitely an improvement though! Thank you for the work and improvements!

IsaacG commented 3 months ago

My bad. I thought we got them all. From a quick glance over the grep output, the sublist looks like it might be the only remaining exercise with obvious room for rewriting.