![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> (I know some people use the triple-line symbol for this though.)
>>
>> The main confusion is between assignment and equality, generally.
>
> That is why most languages have separate symbols for both meanings (and
> why I am advocating imperative languages without assignment).
Heh. How many C programs fail because people use "=" instead of "=="?
(Most strongly-typed languages manage to catch this mistake. C is
deliberately designed to make this mistake a valid program construct.
Friggin' weirdos...)
>> Or, in mathematics, between a test for equality and a statement of
>> equality.
>
> Can you give an example of that?
If I say "x = sqrt(y/z)", do I mean that x *is* equal to this RHS? Or is
it an equation that must be solved by *making* x equal to the RHS?
Similarly, this fragment can appear inside a statement, such as "f(x) =
3 if x = sqrt(y/z), otherwise 9". In that case, the "x = sqrt(y/z)" part
is clearly a conditional test.
So "x = sqrt(y/z)" can mean:
- x *is* equal to this.
- you must *make* x equal to this.
- please *test* whether x is equal to this.
As you point out, there's also the distinction between "x just happens
to equal this thing" and "x is defined as being this thing".
>>> ** See also the concept of '=' in OO languages. Are two objects the
>>> same if all fields are the same?
>>
>> You would first have to define the concept of fields being "the same".
>> ;-)
>
> spot on
Hence deep-equal and shallow equal, value-equal and reference-equal.
>> Fortunately, in a pure functional language, the question becomes a lot
>> simpler.
>
> Not so sure about that.
If data cannot be altered, it is not possible to distinguish between two
objects which are reference-equal and two objects which are merely
value-equal.
The question of deep/shallow still arises, and you still have to decide
whether you mean "identical" or just "equivilent" (which will generally
depend on what the data *means*). But you don't have to worry about
reference-equal any more, which is a significant simplification.
(Until you start dealing with mutable data. In that case, since equality
is a pure operation, it is natural that you should consider only
reference-equality. Indeed, Haskell's type system *demands* this.)
> Anyway even if that would be the case it doesn't
> solve the 'problem' that in real life you have multiple views to look at
> an equation.
Indeed.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 11/18/09 02:10, scott wrote:
>> Sadly, here in the US it's common to have people graduating with a
>> bachelor's degree in engineering who've forgotten most of calculus
>
> Yeh see I don't think that could happen here. My course was 4 years (as
> are most Engineering degrees in the UK now), in the 1st year they
> *really* quickly skipped over all A level maths (which was the
> foundations of calculus) and then jumped on to fourier transforms (and
> friends), vector calculus and stuff. The reason for this was clear, all
Over here, while many do it in high school, almost all engineering
programs have up to 3 semesters of calculus in undergrad (sometimes one
can "test out" of those if their high school education was good enough).
I've been to both a low ranked university (undergrad) and a top
engineering university (grad). In both places, I complained that the
upper level (undergrad) engineering courses rarely required the students
to be able to solve differential equations or perform integrals. The
exception was electromagnetics, where you just can't do without them.
And some courses would require it for calculating Fourier
coefficients/transforms, but those weren't challenging integrals. In all
other courses where, say, a diff eq would crop up, the professor would
almost always say - "Let's not get distracted by the math - this is an
engineering course. Here's the solution: You can verify it by plugging
it back into the diff eq."
It probably wasn't always this way.
--
I didn't know my husband drank until one day he came home sober.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Fredrik Eriksson" <fe79}--at--{yahoo}--dot--{com> wrote:
> On Mon, 16 Nov 2009 13:39:50 +0100, Invisible <voi### [at] dev null> wrote:
> > Suppose that the first derivative of f(x) is g(x).
> >
> > What the hell is the derivative of f(f(x))?
>
> http://www.google.com/search?q=What+is+the+derivative+of+a+composite+function%3F
>
> http://en.wikipedia.org/wiki/Chain_rule
>
> Basic high-school level math. I am slightly surprised that you did not
> know it, though I am not in the least surprised that you did not bother to
> google for it.
>
Already knowing the answer could mean already being familiar with the terms
"composite function" and "chain rule". It wasn't necessarily a stupid question.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 18-11-2009 11:35, Invisible wrote:
>>> (I know some people use the triple-line symbol for this though.)
>>>
>>> The main confusion is between assignment and equality, generally.
>>
>> That is why most languages have separate symbols for both meanings
>> (and why I am advocating imperative languages without assignment).
>
> Heh. How many C programs fail because people use "=" instead of "=="?
>
> (Most strongly-typed languages manage to catch this mistake. C is
> deliberately designed to make this mistake a valid program construct.
> Friggin' weirdos...)
No, if they did it differently it would break other functionality.
>>> Or, in mathematics, between a test for equality and a statement of
>>> equality.
>>
>> Can you give an example of that?
>
> If I say "x = sqrt(y/z)", do I mean that x *is* equal to this RHS? Or is
> it an equation that must be solved by *making* x equal to the RHS?
Or is it the definition of z because x and y are known.
And there is still the other interpretation of being false everywhere in
3D space except on some curves planes.
> Similarly, this fragment can appear inside a statement, such as "f(x) =
> 3 if x = sqrt(y/z), otherwise 9". In that case, the "x = sqrt(y/z)" part
> is clearly a conditional test.
I don't remember 'if' being part of my maths course. Yet yhere must be
specialized subfields where it is defined.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>> Similarly, this fragment can appear inside a statement, such as "f(x)
>> = 3 if x = sqrt(y/z), otherwise 9". In that case, the "x = sqrt(y/z)"
>> part is clearly a conditional test.
>
> I don't remember 'if' being part of my maths course. Yet yhere must be
> specialized subfields where it is defined.
How about
sinc(x) = if x = 0 then 1 else sin(x) / x
--
http://blog.orphi.me.uk/
http://www.zazzle.com/MathematicalOrchid*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
On 18-11-2009 22:52, Orchid XP v8 wrote:
>>> Similarly, this fragment can appear inside a statement, such as "f(x)
>>> = 3 if x = sqrt(y/z), otherwise 9". In that case, the "x = sqrt(y/z)"
>>> part is clearly a conditional test.
>>
>> I don't remember 'if' being part of my maths course. Yet yhere must be
>> specialized subfields where it is defined.
>
> How about
>
> sinc(x) = if x = 0 then 1 else sin(x) / x
>
nope, never seen that
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
andrel wrote:
> On 18-11-2009 22:52, Orchid XP v8 wrote:
>>>> Similarly, this fragment can appear inside a statement, such as
>>>> "f(x) = 3 if x = sqrt(y/z), otherwise 9". In that case, the "x =
>>>> sqrt(y/z)" part is clearly a conditional test.
>>>
>>> I don't remember 'if' being part of my maths course. Yet yhere must
>>> be specialized subfields where it is defined.
>>
>> How about
>>
>> sinc(x) = if x = 0 then 1 else sin(x) / x
>>
> nope, never seen that
I've seen it as
sinc(x) = 1 if x = 0
sinc(x) = sin(x)/x if x /= 0
I've never seen it written with an else.
--
Darren New, San Diego CA, USA (PST)
Is God willing to prevent phrogams, but not able?
Then he is not omnipotent.
Is he able, but not willing, to prevent phrogams?
Then he is malevolent.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> And some courses would require it for calculating Fourier
> coefficients/transforms, but those weren't challenging integrals. In all
> other courses where, say, a diff eq would crop up, the professor would
> almost always say - "Let's not get distracted by the math - this is an
> engineering course. Here's the solution: You can verify it by plugging it
> back into the diff eq."
Yeh, I guess it depends whether you want to be someone who just uses
pre-existing results to "Engineer" run-of-the-mill stuff, or you actually
want to work with cutting-edge concepts and develop new stuff. Me, I prefer
the latter, but maybe that was just because of the way my degree was
oriented.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>>> How about
>>>
>>> sinc(x) = if x = 0 then 1 else sin(x) / x
>>>
>> nope, never seen that
>
> I've seen it as
> sinc(x) = 1 if x = 0
> sinc(x) = sin(x)/x if x /= 0
In our math classes we always wrote it just like that, but usually only the
"sinc(x)" once and a curly bracket around the two options IIRC.
> I've never seen it written with an else.
Me neither, that sounds more like a programming language than math notation.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>>>> How about
>>>>
>>>> sinc(x) = if x = 0 then 1 else sin(x) / x
>>>>
>>> nope, never seen that
>>
>> I've seen it as
>> sinc(x) = 1 if x = 0
>> sinc(x) = sin(x)/x if x /= 0
>
> In our math classes we always wrote it just like that, but usually only
> the "sinc(x)" once and a curly bracket around the two options IIRC.
Indeed. But you can't really do that with ASCII, so I wrote the nearest
equivilent.
>> I've never seen it written with an else.
>
> Me neither, that sounds more like a programming language than math
> notation.
Well, technically the above *is* a valid Haskell function declaration...
[Or rather, it becomes so if you change "if x = " to "if x == 0" - which
probably proves Andrel's original point.]
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |