By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,500 Members | 1,769 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,500 IT Pros & Developers. It's quick & easy.

Order of evaluting functions ?

P: n/a
Hi all, i'm sorry about my poor English ( it isn't my native language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
if both a() and b() was true , is c() will be evaluted or not ?

is it depend on which compiler i use ?
can u recommend me which C compiler i should use, because i'm begining
to learn C and i want to expert it.
Thanks , and hope u can understand what i wrote :( !

Nov 15 '05 #1
Share this Question
Share on Google+
25 Replies


P: n/a

"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
Hi all, i'm sorry about my poor English ( it isn't my native language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
First 'a()' is evaluated. If its value is true,
'b()' is evaluated. If 'b()' is also true, then
'c()' is evaluated. This has nothing to do directly
with the functions, but with the logical operators
&& and ||.
if both a() and b() was true , is c() will be evaluted or not ?
Not.

is it depend on which compiler i use ?
NO. It's a language rule.
can u recommend me which C compiler i should use, because i'm begining
to learn C


That depends on several factors, e.g. which platform you
use, your tastes, whether you're willing to spend money,
or want it for free, etc.

-Mike
Nov 15 '05 #2

P: n/a
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
Hi all, i'm sorry about my poor English ( it isn't my native language). I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
if both a() and b() was true , is c() will be evaluted or not ?

is it depend on which compiler i use ?
can u recommend me which C compiler i should use, because i'm begining
to learn C and i want to expert it.

Thanks , and hope u can understand what i wrote :( !


Yeah. Please don't do that. Just don't. It doesn't matter what order or
why you are doing it. It's just bad programming and I want you to stop.

If this is homework, then it is just a bad homework question; take the F
.. If it is an interview question - please don't encourage them by
working there.

Just say, "No!"

--
Mabden
Nov 15 '05 #3

P: n/a
Mabden wrote:
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...

Hi all, i'm sorry about my poor English ( it isn't my native
language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
if both a() and b() was true , is c() will be evaluted or not ?

is it depend on which compiler i use ?
can u recommend me which C compiler i should use, because i'm begining
to learn C and i want to expert it.

Thanks , and hope u can understand what i wrote :( !


Yeah. Please don't do that. Just don't. It doesn't matter what order or
why you are doing it. It's just bad programming and I want you to stop.

If this is homework, then it is just a bad homework question; take the F
. If it is an interview question - please don't encourage them by
working there.

Just say, "No!"


why?

It would be more constructive if you explained why you say this. Are we
just to assume you're a genius?
--
Nick Keighley

Nov 15 '05 #4

P: n/a
Mike Wahler wrote:
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
Hi all, i'm sorry about my poor English ( it isn't my native language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?


First 'a()' is evaluated. If its value is true,
'b()' is evaluated. If 'b()' is also true, then
'c()' is evaluated. This has nothing to do directly
with the functions, but with the logical operators
&& and ||.
if both a() and b() was true , is c() will be evaluted or not ?


Not.


I got confused by your post. In the previous paragraph you say that if
both a() and b() are true, then c() is evaluated, and now you anser no
when asked exactly the same thing.

If I get it right, first a() is evaluated.

- If a() is true then b() is evaluated.
-If b() is true the whole expression is true. c() doesn't get
evaluated.
-if b() is false c() is evaluated and its return value (interpreted
as a
boolean value) is returned.

- If a() is false a() && b() will be false regardless of b(), so b() is
not evaluated. Then c() gets evaluated and its return value determines
the value of the whole expression.

<snip question about compiler choice>

Nov 15 '05 #5

P: n/a
Mac
On Fri, 28 Oct 2005 05:51:24 +0000, Mike Wahler wrote:

"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
Hi all, i'm sorry about my poor English ( it isn't my native language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
First 'a()' is evaluated. If its value is true,
'b()' is evaluated. If 'b()' is also true, then
'c()' is evaluated.


Well, no. As you say farther down, c() is NOT executed if the value of the
overall expression is known. That is, if a() and b() both evaluate to
non-zero, then the value of the expression as a whole is known, and c()
will not be evaluated/executed.
This has nothing to do directly
with the functions, but with the logical operators
&& and ||.
if both a() and b() was true , is c() will be evaluted or not ?
Not.


Right.

is it depend on which compiler i use ?


NO. It's a language rule.
can u recommend me which C compiler i should use, because i'm begining
to learn C


That depends on several factors, e.g. which platform you
use, your tastes, whether you're willing to spend money,
or want it for free, etc.

-Mike


$ cat main.c
#include<stdio.h>

int a(int i) { putchar('a'); return i; }
int b(int i) { putchar('b'); return i; }
int c(int i) { putchar('c'); return i; }

int main(void)
{
a(1) && b(1) || c(1) ? puts(" 1 && 1 || 1 -> true") : puts(" 1 && 1 || 1-> false");
a(1) && b(1) || c(0) ? puts(" 1 && 1 || 0 -> true") : puts(" 1 && 1 || 0-> false");
a(1) && b(0) || c(1) ? puts(" 1 && 0 || 1 -> true") : puts(" 1 && 0 || 1-> false");
a(1) && b(0) || c(0) ? puts(" 1 && 0 || 0 -> true") : puts(" 1 && 0 || 0-> false");
a(0) && b(1) || c(1) ? puts(" 0 && 1 || 1 -> true") : puts(" 0 && 1 || 1-> false");
a(0) && b(1) || c(0) ? puts(" 0 && 1 || 0 -> true") : puts(" 0 && 1 || 0-> false");
a(0) && b(0) || c(1) ? puts(" 0 && 0 || 1 -> true") : puts(" 0 && 0 || 1-> false");
a(0) && b(0) || c(0) ? puts(" 0 && 0 || 0 -> true") : puts(" 0 && 0 || 0-> false");
return 0;
}

$ gcc -o main main.c
$ ./main
ab 1 && 1 || 1 -> true
ab 1 && 1 || 0 -> true
abc 1 && 0 || 1 -> true
abc 1 && 0 || 0-> false
ac 0 && 1 || 1 -> true
ac 0 && 1 || 0-> false
ac 0 && 0 || 1 -> true
ac 0 && 0 || 0-> false

--mac

Nov 15 '05 #6

P: n/a
Mabden wrote:
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
Hi all, i'm sorry about my poor English ( it isn't my native


language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
if both a() and b() was true , is c() will be evaluted or not ?

is it depend on which compiler i use ?
can u recommend me which C compiler i should use, because i'm begining
to learn C and i want to expert it.

Thanks , and hope u can understand what i wrote :( !

Yeah. Please don't do that. Just don't. It doesn't matter what order or
why you are doing it. It's just bad programming and I want you to stop.

If this is homework, then it is just a bad homework question; take the F
. If it is an interview question - please don't encourage them by
working there.

Just say, "No!"


While it's true that

while (a() && b() || c())

could be slightly more readable, what exactly is your alternative, in
case he really needs to test these conditions? Can you come up with a
more readable version which calls each function once, and in the right
order (that is, calling c() only if a() or b() return 0, and calling b()
only if a() returns non-zero)?

Do you think

while (1) {
int do_flag = 0;
if (a()) {
if (b()) {
do_flag = 1;
} else {
do_flag = c();
}
} else {
do_flag = c();
}
if (do_flag) {
/* body of original loop */
} else {
break;
}
}

is more readable?

It could well be a situation of

while (Stack_Pop(stack, &value) && Process(stack, value)
|| Event_Available(&event)) {
/* deal with event */
}
/* stack was empty or value was END_OF_INPUT, and no pending events */

(yes, it could also be any other situation).
Nov 15 '05 #7

P: n/a
On 2005-10-28, tienlx <ti*****@gmail.com> wrote:
Hi all, i'm sorry about my poor English ( it isn't my native language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
in the order you wrote them
if both a() and b() was true , is c() will be evaluted or not ?
no. also, if a() is false, b() will not be evaluated [but c() will].
is it depend on which compiler i use ?
Any ANSI compiler will do this, and the behavior dates back to
before C itself existed.
can u recommend me which C compiler i should use, because i'm
begining to learn C and i want to expert it.


What kind of platform are you on?
Nov 15 '05 #8

P: n/a
Jordan Abel wrote:
On 2005-10-28, tienlx <ti*****@gmail.com> wrote:
Hi all, i'm sorry about my poor English ( it isn't my native language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?


in the order you wrote them


Not [necessarily] true; as you yourself note, if a() is false then
b() is not evaluated, but c() is.

Mixed with && and ||, expressions are evaluated in a left-to-right
order - but not /all/ of them need appear in that order.

--
Chris "details, devils" Dollin
son of a gun, listen to the plants, breathless.
shifting sands - life in the fast lane.
Nov 15 '05 #9

P: n/a

"Antonio Contreras" <an*****@gmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...
Mike Wahler wrote:
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
> Hi all, i'm sorry about my poor English ( it isn't my native language).
> I confused the order which the function in C be evaluted in for()
> function ? Ex:
> i have 3 functions : a() b() and c()
> and i'll write something like that:
> for ( ;a() && b() || c(); )
>
> what is the order which functions is evaluted ?
First 'a()' is evaluated. If its value is true,
'b()' is evaluated. If 'b()' is also true, then
'c()' is evaluated. This has nothing to do directly
with the functions, but with the logical operators
&& and ||.
> if both a() and b() was true , is c() will be evaluted or not ?


Not.


I got confused by your post. In the previous paragraph you say that if
both a() and b() are true, then c() is evaluated,


You've caught my mistake. Sorry and thanks.
and now you anser no
when asked exactly the same thing.
Oops. :-)

If I get it right, first a() is evaluated.

- If a() is true then b() is evaluated.
-If b() is true the whole expression is true. c() doesn't get
evaluated.
Correct.
-if b() is false c() is evaluated and its return value (interpreted
as a
boolean value) is returned.

- If a() is false a() && b() will be false regardless of b(), so b() is
not evaluated. Then c() gets evaluated and its return value determines
the value of the whole expression.


I'll be more careful next time. :-)

-Mike
Nov 15 '05 #10

P: n/a
Nick Keighley wrote:
Mabden wrote:
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?

Yeah. Please don't do that. Just don't. It doesn't matter what
order or why you are doing it. It's just bad programming and I want
you to stop.

If this is homework, then it is just a bad homework question; take
the F . If it is an interview question - please don't encourage
them by working there.

Just say, "No!"
It would be more constructive if you explained why you say this.
In fact it's vital that the new C user learn about the effects
short-circuit evaluation can have in complicated expressions.
Are we just to assume you're a genius?


That would be a very bad assumption.
Brian

--
Please quote enough of the previous message for context. To do so from
Google, click "show options" and use the Reply shown in the expanded
header.
Nov 15 '05 #11

P: n/a
"Omri Barel" <sp*****@b2z.com> wrote in message
news:dj**********@reader-00.news.insnet.cw.net...
Mabden wrote:
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googlegr oups.com...
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
if both a() and b() was true , is c() will be evaluted or not ?
Yeah. Please don't do that. Just don't. It doesn't matter what order or why you are doing it. It's just bad programming and I want you to stop.
If this is homework, then it is just a bad homework question; take the F . If it is an interview question - please don't encourage them by
working there.


While it's true that

while (a() && b() || c())
could be slightly more readable,


Not really. I make the same suggestion to you. Please don't.

what exactly is your alternative, in
case he really needs to test these conditions? Can you come up with a
more readable version which calls each function once, and in the right
order (that is, calling c() only if a() or b() return 0, and calling b() only if a() returns non-zero)?
Why, yes, I could easily do so. See below.
Do you think

while (1) {
int do_flag = 0;
if (a()) {
if (b()) {
do_flag = 1;
} else {
do_flag = c();
}
} else {
do_flag = c();
}
if (do_flag) {
/* body of original loop */
} else {
break;
}
}

is more readable?


Are you serious? I think I would try to have you fired.

How about something that IS readable:
===============
do {
rc = a() && b();
if (rc)
c();
} while (rc);
===============
That took a good 5 minutes...

--
Mabden
Nov 15 '05 #12

P: n/a
tienlx wrote:
Hi all, i'm sorry about my poor English ( it isn't my native language).
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
if both a() and b() was true , is c() will be evaluted or not ?

is it depend on which compiler i use ?
can u recommend me which C compiler i should use, because i'm begining
to learn C and i want to expert it.
Thanks , and hope u can understand what i wrote :( !


Your English is not a problem, but the way you use whitespace, spell
"you" as u, spell "I" as "i" and that you don't start a sentence with a
capital letter is. Compare the clarity and the impression you get when
you read the reformatted version below compared to the original version
above:

<reformatted-version>

Hi all,

I'm sorry about my poor English (it isn't my native language). I
confused the order which the function in C be evaluted in for()
function? Example: I have 3 functions a(), b() and c() and I'll write
something like

for ( ;a() && b() || c(); )

What is the order which functions is evaluted? If both a() and b() was
true, is c() will be evaluted or not? Is it depend on which compiler I
use? Can you recommend me which C compiler I should use, because I'm
begining to learn C and I want to expert it.
Thanks, and hope you can understand what I wrote :( !

</reformatted-version>
August
Nov 15 '05 #13

P: n/a
On Sat, 29 Oct 2005 12:06:16 +0000, Mabden wrote:
> "tienlx" <ti*****@gmail.com> wrote in message [...] >>for ( ;a() && b() || c(); )
[...] How about something that IS readable:
===============
do {
rc = a() && b();
if (rc)
c();
} while (rc);
===============
That took a good 5 minutes...


Perhaps you should have spent a little longer.

--
http://members.dodo.com.au/~netocrat
Nov 15 '05 #14

P: n/a
"Netocrat" <ne******@dodo.com.au> wrote in message
news:pa****************************@dodo.com.au...
On Sat, 29 Oct 2005 12:06:16 +0000, Mabden wrote:
> "tienlx" <ti*****@gmail.com> wrote in message [...] >>for ( ;a() && b() || c(); )

[...]
How about something that IS readable:
===============
do {
rc = a() && b();
if (rc)
c();
} while (rc);
===============
That took a good 5 minutes...


Perhaps you should have spent a little longer.


I can say the same to you. What is wrong with that code? And why do I
even have to ask the question?

--
Mabden
Nov 15 '05 #15

P: n/a
"Mabden" <mabden@sbc_global.net> wrote in message
news:iM*****************@newssvr11.news.prodigy.co m...
"Netocrat" <ne******@dodo.com.au> wrote in message
news:pa****************************@dodo.com.au...
On Sat, 29 Oct 2005 12:06:16 +0000, Mabden wrote:
> > "tienlx" <ti*****@gmail.com> wrote in message

[...]
> >>for ( ;a() && b() || c(); )

[...]
How about something that IS readable:
===============
do {
rc = a() && b();
if (rc)
c();
} while (rc);
===============
That took a good 5 minutes...


Perhaps you should have spent a little longer.


I can say the same to you. What is wrong with that code? And why do I
even have to ask the question?


Oh, C() can break out - ooops.
===============
do {
rc1 = a() && b();
if (rc1)
rc2 = c();
} while (rc1 || rc2);
===============

Better?

--
Mabden
Nov 15 '05 #16

P: n/a
"Mabden" <mabden@sbc_global.net> wrote in message
news:5V***************@newssvr11.news.prodigy.com. ..
"Mabden" <mabden@sbc_global.net> wrote in message
news:iM*****************@newssvr11.news.prodigy.co m...
"Netocrat" <ne******@dodo.com.au> wrote in message
news:pa****************************@dodo.com.au...
On Sat, 29 Oct 2005 12:06:16 +0000, Mabden wrote:
>> > "tienlx" <ti*****@gmail.com> wrote in message
[...]
>> >>for ( ;a() && b() || c(); )
[...]
> How about something that IS readable:
> ===============
> do {
> rc = a() && b();
> if (rc)
> c();
> } while (rc);
> ===============
> That took a good 5 minutes...

Perhaps you should have spent a little longer.


I can say the same to you. What is wrong with that code? And why do I even have to ask the question?


Oh, C() can break out - ooops.


No! it can't! If a() and b() are true, the loop goes on. What problem do
you see, damn you!

--
Mabden
Nov 15 '05 #17

P: n/a
[quoting/attributions reformatted]
On Sat, 29 Oct 2005 13:39:38 +0000, Mabden wrote:
"Netocrat" <ne******@dodo.com.au> wrote:
On Sat, 29 Oct 2005 12:06:16 +0000, Mabden wrote:
"tienlx" <ti*****@gmail.com> wrote: [...]
for ( ;a() && b() || c(); )

[...]
How about something that IS readable:
===============
do {
rc = a() && b();
if (rc) should be:
if (!rc) c(); should be:
rc = c(); } while (rc);
===============
That took a good 5 minutes...


Perhaps you should have spent a little longer.

[...] What problem do you see, damn you!


--
http://members.dodo.com.au/~netocrat
Nov 15 '05 #18

P: n/a
Mabden wrote:
"Omri Barel" <sp*****@b2z.com> wrote in message
news:dj**********@reader-00.news.insnet.cw.net...
Mabden wrote:
"tienlx" <ti*****@gmail.com> wrote in message
news:11**********************@g44g2000cwa.googl egroups.com...
I confused the order which the function in C be evaluted in for()
function ? Ex:
i have 3 functions : a() b() and c()
and i'll write something like that:
for ( ;a() && b() || c(); )

what is the order which functions is evaluted ?
if both a() and b() was true , is c() will be evaluted or not ?

Yeah. Please don't do that. Just don't. It doesn't matter what order
or
why you are doing it. It's just bad programming and I want you to
stop.
If this is homework, then it is just a bad homework question; take
the F
. If it is an interview question - please don't encourage them by
working there.


While it's true that

while (a() && b() || c())
could be slightly more readable,

Not really. I make the same suggestion to you. Please don't.
what exactly is your alternative, in
case he really needs to test these conditions? Can you come up with a
more readable version which calls each function once, and in the right
order (that is, calling c() only if a() or b() return 0, and calling


b()
only if a() returns non-zero)?

Why, yes, I could easily do so. See below.

Do you think

while (1) {
int do_flag = 0;
if (a()) {
if (b()) {
do_flag = 1;
} else {
do_flag = c();
}
} else {
do_flag = c();
}
if (do_flag) {
/* body of original loop */
} else {
break;
}
}

is more readable?

Are you serious? I think I would try to have you fired.

How about something that IS readable:
===============
do {
rc = a() && b();
if (rc)
c();
} while (rc);
===============
That took a good 5 minutes...


The remainder of the thread shows that this readability appears to be
overrated. I, for one, would prefer the for loop, if only because it's
easier to get right.

Your approach may be slightly clearer to people who don't understand the
short-circuit evaluation C employs, but I do not think such people need
to be accommodated.

If I really wanted to spell things out more, and assuming a() and b()
bear some relation to each other while c() is independent (which the
condition suggests), I'd do this:

while (1)
if (a() && b()) {
x();
} else if (c()) {
x();
} else {
break;
}
}

Where x() is the loop body factored out as a new function. This version
may or may not be more readable/maintainable/what have you, depending on
what exactly a(), b() and c() mean, and what x() would become.

S.
Nov 15 '05 #19

P: n/a
In article <p5*********************@newsc.telia.net>,
August Karlstrom <fu********@comhem.se> wrote:
....
Your English is not a problem, but the way you use whitespace, spell
"you" as u, spell "I" as "i" and that you don't start a sentence with a
capital letter is.


Aren't all those things components of speaking (and writing) English?
I would hazard that I learned most of those things in "English" class.

Nov 15 '05 #20

P: n/a
Kenny McCormack wrote:
In article <p5*********************@newsc.telia.net>,
August Karlstrom <fu********@comhem.se> wrote:
...
Your English is not a problem, but the way you use whitespace, spell
"you" as u, spell "I" as "i" and that you don't start a sentence with a
capital letter is.

Aren't all those things components of speaking (and writing) English?
I would hazard that I learned most of those things in "English" class.


Yes, but most of the things I bitched about are not specific to the
English language. I learned it in "Swedish" class.
August
Nov 15 '05 #21

P: n/a
In article <pv*******************@newsb.telia.net>,
August Karlstrom <fu********@comhem.se> wrote:
Kenny McCormack wrote:
In article <p5*********************@newsc.telia.net>,
August Karlstrom <fu********@comhem.se> wrote:
...
Your English is not a problem, but the way you use whitespace, spell
"you" as u, spell "I" as "i" and that you don't start a sentence with a
capital letter is.

Aren't all those things components of speaking (and writing) English?
I would hazard that I learned most of those things in "English" class.


Yes, but most of the things I bitched about are not specific to the
English language. I learned it in "Swedish" class.
August


Really? They taught you to say "you" instead of "u" in Swedish class?

Nov 15 '05 #22

P: n/a
On 2005-10-30, August Karlstrom <fu********@comhem.se> wrote:
Kenny McCormack wrote:
In article <p5*********************@newsc.telia.net>,
August Karlstrom <fu********@comhem.se> wrote:
...
Your English is not a problem, but the way you use whitespace,
spell "you" as u, spell "I" as "i" and that you don't start a
sentence with a capital letter is.


Aren't all those things components of speaking (and writing)
English? I would hazard that I learned most of those things in
"English" class.


Yes, but most of the things I bitched about are not specific to
the English language. I learned it in "Swedish" class.


Spelling "I" with a capital letter is. It's not done in, for
example, Spanish, or French. Capitalization rules are slippery
things. German, IIRC, capitalizes all nouns (but not pronouns?).
Some languages capitalize the names of months, others don't.

http://meta.wikimedia.org/wiki/Capitalization for a good overview
other than the pronoun issue.

As far as the "I" pronoun goes, English is the only one that I knew
of until today that capitalized it - what I can find online says
Swedish does as well.

And the spelling of the "you" pronoun is _clearly_ a language
specific thing. Most notably, it is in fact spelled "U" (but
capitalized) in Dutch [Again, based on limited online sources]
Nov 15 '05 #23

P: n/a
Jordan Abel wrote:
<snip>
Spelling "I" with a capital letter is. It's not done in, for
example, Spanish, or French. Capitalization rules are slippery
things. German, IIRC, capitalizes all nouns (but not pronouns?).
Correct except for "Sie", as mentioned below.

<snip> And the spelling of the "you" pronoun is _clearly_ a language
specific thing. Most notably, it is in fact spelled "U" (but
capitalized) in Dutch [Again, based on limited online sources]


As a native speaker, let me clear that one up for you, even if you
couldn't care less :-): "u" (not pronounced like "you", incidentally) is
the formal way of addressing, both singular and plural. It is not
typically capitalized, unless referring to God (in the same way some may
use "He" in English). Some still insist on writing all instances of "u"
capitalized, in the same way German uses capitalized "Sie" (also the
formal pronoun), but this is a minority.

The common form of addressing, used when formality is not required, is
"jij" or "je" for singular ("gij" or "ge" in Flemish, which in Dutch is
equivalent to "thou") and "jullie" for plural. In a newsgroup, you would
expect to see the informal versions, regardless of who is adressing who.

In any case, ignoring the broader issue of capitalization being
language-specific, this all bears no relationship to "u" versus "you" in
English -- except of course that Dutch and English are related and there
is some overlap in the origins of the pronouns.

S.
Nov 15 '05 #24

P: n/a
Kenny McCormack wrote:
Really? They taught you to say "you" instead of "u" in Swedish class?


Sigh... I think you get my point.
August
Nov 15 '05 #25

P: n/a
Op Sun, 30 Oct 2005 15:26:03 +0000 (UTC) schreef Jordan Abel:

<SNIP>
And the spelling of the "you" pronoun is _clearly_ a language
specific thing. Most notably, it is in fact spelled "U" (but
capitalized) in Dutch [Again, based on limited online sources]


Since the 1950's the word "u" in Dutch is not capitalized anymore, along
with the names of the months and days of the week.
The use of "u" has declined since then, it's mostly "jij" and "jou"
(familiar) these days.
I rather not tell about the new spelling rules, they change them every 20
years or so, the last one is a month old ;-(

Coos
--
CHForth, 16 bit DOS applications
http://home.hccnet.nl/j.j.haak/forth.html
Nov 15 '05 #26

This discussion thread is closed

Replies have been disabled for this discussion.