4 ms·
The child was stuck on the intuition that the argument must change in some way (i.e. that the function was linearly typed).
by darkkindness 8y ago
The child was stuck on the intuition that the argument must change in some way (i.e. that the function was linearly typed).
- thaumasiotes 8y agoThis and this: >> I think he was just stuck on the idea of the function doing something arithmetical to the input, and was having trouble coming up with some sort of arithmetic procedure which would result in 6 no matter what you put in don't really seem, to me, like they can explain what's happening -- f(x) = 6 is trivially easy to express in terms of arithmetic operations being applied to x. If you assume that a function that multiplies by 2 is intuitively ok, what's wrong with a function that multiplies by 0?
- jdmichal 8y agoI wonder if it would have made it any more obvious to explicitly define it as: f(x) = 0*x + 6 EDIT: Or even, if multiplication is a problem, f(x) = (x - x) + 6
- coldtea 8y ago>what's wrong with a function that multiplies by 0? Obviously the fact that it doesn't seem to have any visible effect on the input -- and people expect the input to be affected.
- thaumasiotes 8y agoAffected? f(x) = 6 has a pretty obvious effect on all input other than 6. Your comment is more of an indictment of identity functions than dimension-losing functions.
- Twisol 8y agoA phrasing more to the point is that one expects the input to have some effect on the output. One usually obtains this by, colloquially speaking, performing actions on the input, since if you don't act upon the input in some way, you're going to get a constant result. Of course, you are correct in that some actions don't really do anything, but they're observationally indistinguishable from not acting on the input in the first place.
- thaumasiotes 8y agoYour comment seems confused in exactly the same way as coldtea's. How are you imagining turning input 20 into output 6 without acting on the input? If you don't act on the input, you have an identity function, not a constant function. Constant functions must alter their input whenever it doesn't match the constant output. Nobody ever complained that the problem with Procrustes was that he didn't do anything to the guests in his bed. And in the other direction, I don't understand why you want to characterize "multiply the input by zero" as an action that "doesn't do anything"? In what sense would that be true?
- acomar 8y agoA constant function doesn't act on its input. `f(x) = 6` doesn't perform a different action on each input. But given your comparison to `f(x) = 0*x + 6`, let's move away from numbers and consider a different function. `f'` which I'll define as: const :: a -> b -> a const a _ = a f' :: a -> () f' = const () Now I can give `f'` anything at all. Can you try to explain the action of `f'` in any way but that it ignores its argument?
- coldtea 8y ago>Your comment seems confused in exactly the same way as coldtea's. How are you imagining turning input 20 into output 6 without acting on the input? Easily: f(x) = 20 No action on the input -- discarding the input is not an intuitive action for a 6-year old that just got a handful of of ax+k and xk + n style examples. >Nobody ever complained that the problem with Procrustes was that he didn't do anything to the guests in his bed.* You seem confused. Procrustes operated on his guests, which is neither the identity (they would come of unscratched) or the constant function (in which the same person or thing would emerge out of the bed). Their height in the end was the same, but that's not the argument to the Procrustes function -- their overall body was. >And in the other direction, I don't understand why you want to characterize "multiply the input by zero" as an action that "doesn't do anything"? In what sense would that be true? Obviously in the intuitive sense for a 6-year old -- which is what we're discussing, and which was based on some operation on the argument that resulted in a different value each time, not degenerate versions of functions like the identity, constant, 0, etc. (That said, it "doesn't do anything to the input" in the sense that it's not dependent on the particular input. 2x gives you 4 and 10 if you pass 2 and 5. 0x gives you 0 whatever you pass it, so could just as well be a constant fx = 0).
- coldtea 8y ago>Affected? f(x) = 6 has a pretty obvious effect on all input other than 6. It wasn't "what would the result be" that eluded the child (or those students). It was the question "in what way is this an operation on x" -- which in their minds was intuitively, put x in and add/subtract/multiply by something(s) to get another result. fx=K, fx=0, or fx=x didn't seem as substantial enough transformations (given the other examples) to qualify with their notion of a function.
- ummonk 8y agoI think it's more that it doesn't make use of its input. If you aren't using the input, why is the input in its type signature?
- Sharlin 8y ago"Trivially easy" to a six-year old? Who may or may not even have a good grasp of the concept of zero yet? You don't seem to be very self-aware of the extent of your knowledge and understanding compared to a preschooler.
- taeric 8y agoOddly, I think I'm stuck on the idea that it has to be "just once." Curious if the child could have figured out a function that needed the input twice, as an example. (So, x^2+x, or something similar.) So, is it that it is linearly typed, or that it is greedy and wants to use all inputs given at least once? Or, are those the same thing?