To BODYHolic:
I don't agree with you.
To 我说汉语:
The classification of “了” is right. But I disagree with your explanation.
(1)A 了 after a verb pharse and before its object(if the verb have a object), implies the fact happened or has happened. (V了O) or (V了)
(2)A 了 after a verb pharse and after its object(if the verb have a object), implies the fact will happen. (VO了) or (V了)
(3+1) A 了 at the end of a sentence is a sentence marker. It may also have the function of (了1). (VO了) (V了)
(3+2) A 了 at the end of a sentence is a sentence marker. It may also have the function of (了2). (VO了) (V了)
A “了” can have more than one functions at the same time.
“我學了中文”,I have studied Chinese, which emphasis the present state and the result from the fact you have studied Chinese. It may be a part of one sentence.(了1)
“我學中文了”, I studied Chinese. It just states the fact. (了3+1)
“我學中文了”, I will start my Chinese study. It states the fact will happen. Maybe he want to say "Do not disturb me!".(了3+2)
“我學了中文了”, I studied Chinese or I have studied Chinese. (了1 and 了3+1 )
The difference between (了3) and (了1) or (了2) is that (了3) is a sentence, (了1) or (了2) may not be. You can say “自從我學了中文後”, but you can't say “自從我學中文了後”.
"Have done" and "did is" the same.
我昨天想了吃飯 - You can't "want eat". "Eat" is not the object of the verb "want".
我昨天吃了飯 - Yesterday I ate food. (了1)
我昨天吃飯了 - Yesterday I ate food. (了3+1)
(了3+1) is better if that's all you want to say.
You can use "eat food" , "want food", but you can't "want eat". You have to "want to eat".
我今天想吃飯了 - I want to eat now. (了3+1 or 了1)
"want to eat" is a verb. "to eat" is used to decorate "want". You can simplify the sentence to “我想了”.
The “了” actually only have two functions: a perfectivity marker; a modal particle.
Chinese always put a modal particle after a sentence when they speak. If you don't do so, your audience will wait for you to continue. The sentence “我今天想吃了飯。” is very strange, you should say “我今天想吃了飯,再回家。” or “我今天吃飯了。”. But “我今天吃了飯” is acceptable. “想”+verb is very special verb phrase.
A perfectivity mark, can be represent past perfect or future perfect. In Chinese, perfect and imperfect have not difference.
You cant imagine that (了3+1) is 已經+V+O+了, (了3+2) is 要(將要)+V+O+了. Chinese tend to eliminate all things unnecessary. E.g. “走了” means “我(O) 將要(will)走(go)了”.
Sometimes “了” can be replaced with other modal particles. e.g. “我學會了” —— “我學會啦” “我要走了”——“我要走啦” The word “會” “要” have already expressed the meaning of “will” "already", so the “了” is not necessary.
So, you should first remember the complete sentence first, then you can guess the meaning of incomplete form.
我已經學過中文。 -- bad, not modern Chinese. If you want to omit the “了”, you should write the sentence in "ancient Chinese" like “既通國語”
我已經學過中文了。 -- longwinded .
我己經學過中文啦。 -- the same.
我學過中文了。 -- good.
我學過中文啦。 -- good.
我學中文了。 -- ambiguous.
我將要學中文 -- bad, not modern Chinese. If you want to omit the “了”, you should write the sentence in "ancient Chinese" like “欲習國語”
我將要學中文了。 -- longwinded .
我將要學中文啦。 -- the same.
我要學中文了。 -- good.
我要學中文啦。 -- good.
我學中文了。 -- ambiguous.