3 ms·
No I did not do what you wrote. Here's what I did: I defined what a function is, then I described how a unix program fits the definition of what a function is.
by crimsonalucard5 6y ago
No I did not do what you wrote.
Here's what I did: I defined what a function is, then I described how a unix program fits the definition of what a function is...
In short a unix program with stdin as domain and stdout as a codomain is a function but a function is not necessarily a unix program.
I think what's actually going on is you didn't read what I wrote very carefully. You sort of just skimmed over it. I can't blame you, it is rather long and detailed...
But if you want to have a meaningful discussion you need to read it and ask questions about things you don't understand.
- mpweiher 6y agoAs I wrote before: > > Unix piping is basically functional programming. > Only in the same sense that all computing is Turing Machines or NAND gates. Yes, you can map and analogize long enough until you reach a point where you find what you perceive to be equivalences. However, what you've done at that point is rediscover that all these mechanisms are computational and thus at some level equivalent and transformable into each other, just like yoo can implement all of this with just NAND gates. You have not shown what you claim. ¯\_(ツ)_/¯
- crimsonalucard5 6y ago>you can map and analogize This is a common thing for people to do during debates and it's not an effective form of proving anything. If you read my post carefully you will see that, again I did NOT do this. What I did is defined what a function is, and defined How a unix program fits that definition. This is not a "illustrate my point by 10 million examples while establishing nothing" It's a logical proof. Read it more carefully. >However, what you've done at that point is rediscover that all these mechanisms are computational and thus at some level equivalent and transformable into each other, just like yoo can implement all of this with just NAND gates. Transformational is not the right term. The term you're seeking is "isomorphic." First off you're not being clear about what you're saying so I'm going to make an assumption. Here's what I'm assuming: Your statement implies that because all things are "isomorphic" with NAND Gates and Computation in general therefore all things are "functions" including unix programs. If what you imply is True (which it is not by the way) then you're basically saying that I'm right but the statement I'm making is Pointless because everything can be a "function." From another perspective what your statement implies is that any statement that anyone makes about whether or not a language is functional or not is pointless because it's all Turing Machines and NAND gates so everything is functional so who cares? This is obviously not the case. C++ is clearly not a functional language even though it can be coded to functionally behave as if it were and vice versa, but the language itself does not FIT the definition of a functional language, only a small subset of C++ may fit, but the language itself does not fit. But let's get back to the part where you're wrong. NAND gates are functions, but not all Composition of Nand Gates Fit the definition of a function. Additionally the definition of a Turing Machine does not fit the definition of a function either. Examine the JK FlipFlop: http://hyperphysics.phy-astr.gsu.edu/hbase/Electronic/jkflipflop.html http://hyperphysics.phy-astr.gsu.edu/hbase/Electronic/jkflip... You will see this basic computing component is constructed from nand gates but it's truth table is anything but deterministic. A JK flip flop does not represent a deterministic mapping between a codomain and a domain and is therefore NOT a function. JK flip flops form the backbone of registers which are in turn a fundamental concept of computing machines. Computing machines themselves hold state via registers and thus computations are not deterministic as the computations rely on state stored in the registers. Thus for computing as a whole, for programming languages as a whole, MOST of computing IS NOT Functional Programming because most computations rely on state and are not deterministic. The greater majority of programs designed on top of a computation machine rely on stateful deterministic methods of computing: Java, C++, python almost every computing technology out there is NOT functional. Only a small subset of languages can fit the definition of a function or functional program. This INCLUDES "unix programs and Piping" in general, but most things DO NOT fit this paradigm. You can configure these machines (and languages) to BEHAVE as if they were stateless just like you can configure functional machines to BEHAVE as if they were stateful via the "curry-howard correspondance" but this doesn't mean that "everything" is a function, the definition of a function itself actually refers to superficial differences outside of the isomorphism. >You have not shown what you claim. ¯\_(ツ)_/¯ I have shown that your statements are not only an admission that I'm right, but that your statement is indeed wrong. I didn't use any analogies here. I went straight into situations that disprove your statements derived directly from your wording. If I used an analogy you will find the Use of the word "like" somewhere which did NOT occur. Also I'm not the one being pedantic here. You're the one who initially took the statement into computing theory. Literally unix piping is a highly functional paradigm. It is obvious from an intuitive and lay-mans perspective. My initial post stating this has roughly 40 upvotes so you will find that most people agree with me.