Pure functions? What the heck are those ?!?!
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
To the contrary, it actually sounds like your entire point in this thread is to bicker over definitions. The term "pure function" already has a definition, and you're now apparently arguing that we should change the definition, and you're putting me down for not accepting your changed definitions. So it sounds like bickering over definitions was your point from the start, no?
Re: Pure functions? What the heck are those ?!?!
Define it however the fuck you want. I really don't care about definitions.Flannel Jesus wrote: ↑Sat Jul 16, 2022 9:37 pm To the contrary, it actually sounds like your entire point in this thread is to bicker over definitions. The term "pure function" already has a definition, and you're now apparently arguing that we should change the definition, and you're putting me down for not accepting your changed definitions. So it sounds like bickering over definitions was your point from the start, no?
I am asking you whether you recognise by observation/intuition (either you do; or you don't) that according to the status quo one of these functions is classified as "pure" and the other one isn't.
Even though they are exactly the same function.
Code: Select all
bool f(x){
if x == 1:
return true;
else:
return false;
}
Code: Select all
void f(x){
if x == 1:
throw Yes;
else:
throw No;
}
Last edited by Skepdick on Sat Jul 16, 2022 9:45 pm, edited 2 times in total.
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
What does "x" mean in the second function? Where does it come from? Is it a global variable?
Re: Pure functions? What the heck are those ?!?!
It means exactly the same thing as x in f(x) = xFlannel Jesus wrote: ↑Sat Jul 16, 2022 9:43 pm What does "x" mean in the second function? Where does it come from? Is it a global variable?
It's a variable you pass to the function.
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
Ah okay, that wasn't obvious to me because there was no apparent arguments in the function definition.
Are you sure they aren't both seen as pure functions?
Are you sure they aren't both seen as pure functions?
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
Is it impure because you're throwing the result, rather than returning it? The idea that a pure function cannot throw errors is somewhat opinion based and there's wiggle room on that ideologically.
Re: Pure functions? What the heck are those ?!?!
It depends on who you ask.Flannel Jesus wrote: ↑Sat Jul 16, 2022 9:51 pm Are you sure they aren't both seen as pure functions?
Some people have caught on/corrected their misconception.
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
But neither of them are pure according to the redefinition you offered up in your original post.
Re: Pure functions? What the heck are those ?!?!
The two programs are semantically equivalent. They signal 1 bit of information. They just encode the information differently.Flannel Jesus wrote: ↑Sat Jul 16, 2022 9:59 pm Is it impure because you're throwing the result, rather than returning it? The idea that a pure function cannot throw errors is somewhat opinion based and there's wiggle room on that ideologically.
Re: Pure functions? What the heck are those ?!?!
Precisely.Flannel Jesus wrote: ↑Sat Jul 16, 2022 10:05 pm But neither of them are pure according to the redefinition you offered up in your original post.
A pure function has no side-effects.
There is no difference between outputs, effects and side-effects. Information is information!
Therefore a pure function has no outputs, effects and side-effects.
A pure function does nothing.
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
So why would anybody be interested in using your new definition? We could use the existing definition, which refers to things what are useful and do things, or we could choose to switch to your definition, which doesn't refer to anything useful, doesn't refer to anything anybody has any reason to use or think about ever?
Because who has reason to use or think about functions that don't do anything?
If you're trying to make a case for the redefinition, I'm not seeing any pros
Because who has reason to use or think about functions that don't do anything?
If you're trying to make a case for the redefinition, I'm not seeing any pros
Re: Pure functions? What the heck are those ?!?!
I don't care about definitions.Flannel Jesus wrote: ↑Sat Jul 16, 2022 10:09 pm So why would anybody be interested in using your new definition? We could use the existing definition, which refers to things what are useful and do things, or we could choose to switch to your definition, which doesn't refer to anything useful, doesn't refer to anything anybody has any reason to use or think about ever?
Because who has reason to use or think about functions that don't do anything?
If you're trying to make a case for the redefinition, I'm not seeing any pros
You can define this color as green. What I do care about is having as few misleading misconceptions in my head as possible.
A function that has no (side)effects would be like a calculator with no screen.
Far more importantly, if pure functions existed in reality they would be impervious to cryptanalysis or side-channel attacks.
Pure functions would be immmune to reverse engineering.
They would be ideal black boxes and there are no such things in this universe.
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
But you just said pure functions are functions that don't do anything. Of course they would be impervious to crypto analysis, any form of attack, and nobody would want to reverse engineer them, because you've defined them as "functions that don't do anything"
Re: Pure functions? What the heck are those ?!?!
Obviously this is a judgment relative to the observer's reference frame.Flannel Jesus wrote: ↑Sat Jul 16, 2022 10:25 pm But you just said pure functions are functions that don't do anything. Of course they would be impervious to crypto analysis, any form of attack, and nobody would want to reverse engineer them, because you've defined them as "functions that don't do anything"
For all you know your calculator (which has no screen) has calculated the answer to 5+5. You don't know.
Which leaves you with two hypotheses about it.
A. It has performed the computation, but it has failed to communicate it.
B. It hasn't performed the computation.
Those two things are observationally equivalent if you ONLY monitor the regular outputs.
Those two things are NOT observationally equivalent if you also monitor side-channels. Heat, power draw, execution time, memory usage etc.
The example I used throughout this thread is like this...
Code: Select all
def f():
5+5
Code: Select all
def f():
pass
Empirically they aren't.
Last edited by Skepdick on Sat Jul 16, 2022 10:36 pm, edited 1 time in total.
-
Flannel Jesus
- Posts: 4302
- Joined: Mon Mar 28, 2022 7:09 pm
Re: Pure functions? What the heck are those ?!?!
I have no idea what your point is, and I would honestly be surprised if anybody but you does at this point.