天天看點

Language and Wittgenstein

first of all, consider two problems:

1. given a family  which has two children, one of them is a boy, what is the probability of other child is a boy?

most people give the answer 1/2, but it is incorrect.

2. meet a boy at random and know this boy belong to a family which has two children, what is the probability of other child is a boy?

the answer is 1/2.

now  i tell you answer of question 1 should be 1/3. what is the difference? because the sample spaces are different. question 1 consider a series family, question 2 consider a series boys. so sample space of 1 is: {boy, boy}, {boy, girl}, {girl, boy}, {girl,girl}. you can figure out it's probability is: (bb)/(bb+bg+gb) =1/3. for the question 2, we still use this samples and notice the words "meet a boy at RANDOM", it means sample {boy, boy} needs to consider twice, this is key! so probabilty is (2bb)/(2(bb)+(bg)+(gb))=1/2.

really tricking, isn't it? i think the reason is our language lacks a kind of ability to exactly express the "meaning". the key of question 1 is the word "family" which implies children  should be considered this way: property sex and order({boy, girl}, {girl, boy} is different) is a matter. the key of question 2 is word "random", however it is more clear than "family". in general, family does not concern with the order of children. but when we put it in a math problem, it does.

our natural language is so "unsteady", even the words family has the ability to confusing us, let alone the philosophy words such as: exist, all, infinity... i found these words has not a clear definition, the connection between "name" and "meaning" is intermixed with others. in fact, in our daily talking, many words is vagueness. we need to clarifying the key word meaning before the discussion. for example: Russell paradox, a set contain all things, does it contain itself as a element? "All" is mysterious, its pointing of name to meaning is vagueness.

C++ programming language is also has this problem, if there is no pointer and reference in it(of course something like operator overloading lost too), all things should be clear, like java. that is, the method(symbols, grammars) of it to expressing meaning is adequate. but once pointer and address are equipped, the pointing is disordered. consider following:

void f(std::string& a, std::string& b)

{

      const char* p = (a+b).c_str();

      //do something with p and it's sucks

}

behavior of "=" is assignment which don't consider it's context, it works by bit copying. it is ok when there is no pointer. once pointer coming, more context is also introduced, so "=" has more than one meaning essentially(here is the meaning relate to temp object which is not the object right of it). on the other hand, cpp's problem is more simple beause if we want to fix it in logical way, we need to introduce more symbols or grammars to clarifying this situation. natural language can't do this.

could we do a job to giving the clear pointing between name and meaning? Wittgenstein said no. some words like "all" can not have its clear pointing, these words only lives in context. it's meaning is ONLY depending on its context. or else we trap into metaphysical problem(since Augustine?). i think Wittgenstein shows our natural language is incomplete because it describe things which is god created, and Godel proved integral system is incomplete which is also god created. is this a metaphysical? :)

繼續閱讀