What is Mathematics?
[1/9] from: joel::neely::fedex::com at: 3-Jul-2001 12:54
OK, I apologize for opening my mouth... ;-)
[JELINEM1--nationwide--com] wrote:
> Mathematics is included in programming to be sure, but I
> don't see Mathematics as a superset of programming...
> So, I do not see any reason to choose programming
> implementations based on mathematics (probably better
> stated as "numerics").
>
NO NO NO NO NO NO NO NO NO!
Arithmetic ("numerics") is the least interesting and most
trivial aspect of Mathematics. (And IMHO number-crunching
is the least interesting aspect of programming.)
As one example of the kind of relevant (non-arithmetic) math,
I'd highly recommend Carl's article in REBOL/Zine 1.2.
The process of transforming code from the original form
either (mode) [
data: find data "Active"
][
data: find data "Passive"
]
into the final
data: find data pick ["Active" "Passive"] mode
has been known in the Forth world (for at least 10 years) as
factoring
and more recently in the OO and extreme programming
worlds as "refactoring" by direct analogy with the kind of
algebraic process that allows one to transform
(a * b + c) - (d * b + c)
into
(a - d) * b
(I trust I needn't add the reminder that algebra is NOT about
arithmetic nor numbers, but about formal manipulations of
strings of symbols.)
As another example, the algebraic law that lets me refactor
if any [a <= b none? find p q not same? x y] ...
into
if all [a > b find p q same? x y]
is known as DeMorgan's law (about which more later). I can't
imagine programming without being able to perform such
transformations and having the logical underpinnings on which
they rest.
> Just as "art" can be described in the terms of physics...
>
I know a number of folks in both the Artificial Intelligence
and Physics worlds who'd love to argue that point with you! ;-)
> > Logic values do have an implicit integer meaning, 0 false,
> > and 1 true. This is firmly accepted amongst electronics
> > world.
>
> Absolutely! This makes great sense in the world of
> electronics. But why, in the abstract world of logic, should
> this relation be valid?
>
Ever heard of George Boole (1815 1864), after whom Boolean
algebra is named? His work considerably predates electronics
(and TLTMNBM), and is rightly regarded as the foundation of
mathmatical (symbolic) logic. In conjunction with Boole,
another British mathematician, Augustus DeMorgan, formalized a
the principles now known as DeMorgan's laws. As the Encyclopedia
Britannica says: "A renascence of logical studies came about
almost entirely because of Boole and DeMorgan."
Boole used 1 for true and 0 for false, allowing such notation
as
(1 - x)
for
not x
and
(1 - x)(1 - y)
for
(not x) and (not y)
The relation is far more valid in the abstract world of logic
than it is in the approximate world of electronic circuits
whose variable voltages must be interpreted as being "close
enough" to the values chosen to represent logical 1 or 0!
> ... This came from firm roots in BASIC as a first language...
>
I can't resist referring to
http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF
whenever BASIC -- or its successor, Visual SickBay -- is
mentioned (or at least thinking of it ;-)
Of course, since you made me think of EWD papers, I must also
refer you to
http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
Enjoy!
-jn-
--
It's turtles all the way down!
joel'dot'neely'at'fedex'dot'com
[2/9] from: jelinem1:nationwide at: 3-Jul-2001 13:58
Reading the first link now ("How do we tell truths that might hurt?").
Just got to the statement:
It is practically impossible to teach good programming to students that
have had prior exposure to BASIC: as potential programmers they are
mentally mutilated beyond the hope of regeneration
- Copyrighted by
Springer-Verlag New York. You must now read the article or I'll be held
liable.
<snicker> I'm mentally mutiliated! Do I get paid extra? Yes I know that
the majority of "serious" programmers have a very negative - even abrasive
- attitude about BASIC, but I'll admit to using it nonetheless. Not any
really current version of BASIC, mind you. I began programming in "baby
BASIC"... but I'm digressing.
Yes I trivialized the scope of mathematics to arithmetic. I stand
corrected on that point. And, yes, of all my required math courses in
college, algebra was by far my favorite. My last course came close,
Numerical Analysis, by which time I was a competant programmer enough
(should I admit with BASIC?) to finish my assignments with a program.
Anyway, thanks for the enlightenments and the links. I'm always open to
broaden my knowledge and understanding.
- Michael
From: Joel Neely <[joel--neely--fedex--com]>@rebol.com on 07/03/2001 12:54 PM
Please respond to [rebol-list--rebol--com]
Sent by: [rebol-bounce--rebol--com]
To: [rebol-list--rebol--com]
cc:
Subject: [REBOL] What is Mathematics?
OK, I apologize for opening my mouth... ;-)
[JELINEM1--nationwide--com] wrote:
> Mathematics is included in programming to be sure, but I
> don't see Mathematics as a superset of programming...
> So, I do not see any reason to choose programming
> implementations based on mathematics (probably better
> stated as "numerics").
>
NO NO NO NO NO NO NO NO NO!
Arithmetic ("numerics") is the least interesting and most
trivial aspect of Mathematics. (And IMHO number-crunching
is the least interesting aspect of programming.)
As one example of the kind of relevant (non-arithmetic) math,
I'd highly recommend Carl's article in REBOL/Zine 1.2.
The process of transforming code from the original form
either (mode) [
data: find data "Active"
][
data: find data "Passive"
]
into the final
data: find data pick ["Active" "Passive"] mode
has been known in the Forth world (for at least 10 years) as
factoring
and more recently in the OO and extreme programming
worlds as "refactoring" by direct analogy with the kind of
algebraic process that allows one to transform
(a * b + c) - (d * b + c)
into
(a - d) * b
(I trust I needn't add the reminder that algebra is NOT about
arithmetic nor numbers, but about formal manipulations of
strings of symbols.)
As another example, the algebraic law that lets me refactor
if any [a <= b none? find p q not same? x y] ...
into
if all [a > b find p q same? x y]
is known as DeMorgan's law (about which more later). I can't
imagine programming without being able to perform such
transformations and having the logical underpinnings on which
they rest.
> Just as "art" can be described in the terms of physics...
>
I know a number of folks in both the Artificial Intelligence
and Physics worlds who'd love to argue that point with you! ;-)
> > Logic values do have an implicit integer meaning, 0 false,
> > and 1 true. This is firmly accepted amongst electronics
> > world.
>
> Absolutely! This makes great sense in the world of
> electronics. But why, in the abstract world of logic, should
> this relation be valid?
>
Ever heard of George Boole (1815 1864), after whom Boolean
algebra is named? His work considerably predates electronics
(and TLTMNBM), and is rightly regarded as the foundation of
mathmatical (symbolic) logic. In conjunction with Boole,
another British mathematician, Augustus DeMorgan, formalized a
the principles now known as DeMorgan's laws. As the Encyclopedia
Britannica says: "A renascence of logical studies came about
almost entirely because of Boole and DeMorgan."
Boole used 1 for true and 0 for false, allowing such notation
as
(1 - x)
for
not x
and
(1 - x)(1 - y)
for
(not x) and (not y)
The relation is far more valid in the abstract world of logic
than it is in the approximate world of electronic circuits
whose variable voltages must be interpreted as being "close
enough" to the values chosen to represent logical 1 or 0!
> ... This came from firm roots in BASIC as a first language...
>
I can't resist referring to
http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF
whenever BASIC -- or its successor, Visual SickBay -- is
mentioned (or at least thinking of it ;-)
Of course, since you made me think of EWD papers, I must also
refer you to
http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
Enjoy!
-jn-
--
It's turtles all the way down!
joel'dot'neely'at'fedex'dot'com
[3/9] from: jeff:rebol at: 3-Jul-2001 12:26
Howdy, Joel:
> As another example, the algebraic law that lets me refactor
>
> if any [a <= b none? find p q not same? x y] ...
>
> into
>
> if all [a > b find p q same? x y]
maybe into:
if NOT all [ a > b find p q same? x y ] ...
DM is ~(p or q) = ~p and ~q
~(p and q) = ~p or ~q
Working backwards, though:
~( ~p and ~q ) ==
~(~(p or q)) [DM] ==
(p or q) [Double negation]
Therefore:
(p or q) == ~ ( ~ p and ~q )
:-)
-jeff
[4/9] from: joel:neely:fedex at: 3-Jul-2001 14:55
Hi, Michael,
I trust my citation was understood as sympathy with the implied
difficulty of overcoming "firm roots in BASIC" and not as a
value judgment on your progress in that quest! ;-)
We need not cover the list of programming languages that I've
used and tried to recover from! Said list includes COBOL, the
language that was hyped as allowing managers to read their
subordinates' code to verify its correctness!!!! (Contributing
to my skepticism toward the notion of "computer programming for
non-programmers"!)
-jn-
[JELINEM1--nationwide--com] wrote:
> Reading the first link now ("How do we tell truths that might
> hurt?"). Just got to the statement:
<<quoted lines omitted: 4>>
> You must now read the article or I'll be held liable.
> <snicker> I'm mentally mutiliated! ...
Not really! You're using REBOL now, and "recognizing that you need
help is half the cure!" ;-)
-jn-
___________________________________________________________________
The purpose of computing is insight, not numbers!
- R. W. Hamming
joel'dot'neely'at'fedex'dot'com
[5/9] from: joel:neely:fedex at: 3-Jul-2001 14:58
Yes, Jeff, thanks for catching the hideous typo!!!
My REBOL theorem-prover was temporarily down so that I could
run my email client!
(That's my story, and I'm stickin' to it! ;-)
-jn-
Jeff Kreis wrote:
> > As another example, the algebraic law that lets me refactor
> >
<<quoted lines omitted: 3>>
> >
> if NOT all [ a > b find p q same? x y ] ...
--
___________________________________________________________________
The purpose of computing is insight, not numbers!
- R. W. Hamming
joel'dot'neely'at'fedex'dot'com
[6/9] from: bard:papegaaij:austarnet:au at: 4-Jul-2001 8:43
Hi guys,
My first introduction to programming was through the book "Structure and
Interpretation of Computer Programs" by Abelson and Sussman. This is an
excellent book that clearly demonstrates the intimate link between
mathematics and programming. My motto: "no good programmer should be without
it". For those interested, it is available on-line at:
http://scip.arsdigita.org.
Have a look at it, I'm sure you'll love it (if you don't know it already, of
course).
Bard
[7/9] from: bard:papegaaij:austarnet:au at: 4-Jul-2001 9:04
Sorry, got the address wrong, it should be:
http://sicp.arsdigita.org
Sorry for the typo.
Bard
[8/9] from: larry:ecotope at: 3-Jul-2001 18:31
Hi Bard,
Yes, I agree. SICP is one of my favorite programming books, possibly the
best one in print. In addition, being based on the symbolic language Scheme,
it is particulary appropriate for REBOL, which is in many ways similar to
Scheme. Thanks for drawing folks attention to it. As you noted in a
subsequent post the correct link is
http://sicp.arsdigita.org
For those interested in recent activities of the co-inventor (with Guy Lewis
Steele) of Scheme, there is an April 2, 2001 video lecture by Gerald
Sussman, discussing his "big picture" view of programming at
http://aduni.org/about/colloquium_schedule.tcl
Toward the end, he discusses his new book The Structure and Interpretation
of Classical Mechanics which uses Scheme to formalize thinking about
advanced mechanics. There are also lectures by Stallman, Parmenter, and
others.
Cheers
-Larry
[9/9] from: meekerdb:rain at: 3-Jul-2001 20:27
Hello Larry
On 03-Jul-01, Larry Palmiter wrote:
> Hi Bard,
>
> Yes, I agree. SICP is one of my favorite programming books, possibly
> the best one in print. In addition, being based on the symbolic
> language Scheme, it is particulary appropriate for REBOL, which is in
> many ways similar to Scheme.
It's one of my favorite books too! I note that in Scheme indexing
starts with 0 and booleans are a separate datatype with values #T and
#F. I like both conventions.
Brent Meeker
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted