From: Rusi <rustompmody@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: if vs. when vs. and: style question
Date: Wed, 25 Mar 2015 07:02:41 -0700 (PDT) [thread overview]
Message-ID: <0d1d19ab-06e9-462d-8867-9a49b1e232d3@googlegroups.com> (raw)
In-Reply-To: <87twx9360u.fsf@kuiper.lan.informatimago.com>
On Wednesday, March 25, 2015 at 12:49:59 PM UTC+5:30, Pascal J. Bourguignon wrote:
> Rusi writes:
>
> > On Wednesday, March 25, 2015 at 8:10:18 AM UTC+5:30, Emanuel Berg wrote:
> >> "Pascal J. Bourguignon" writes:
> >>
> >> > But then, why stop with +?
> >> >
> >> > You could use instead:
> >> >
> >> > (funcall (additive-operator (ring integer))
> >> > (neutral-element (multiplicative-operator (ring
> >> > integer))) 5) ; 6
> >> >
> >> > or something even more general?
> >
> > I find Pascal's example brilliant and hilarious.
> > In this case though, I slightly err on your (Emanuel) side.
> >
> > When I see the 1+, I have a stop (like um... er...)
> > Is that a number, an expression, a constant, a comment?
> >
> > Oh Oh.. Functions can start with digits (Yeah this is lisp...)
>
>
> Indeed, it is clear that the names 1+ and 1- are ill-choosen.
> Notably 1-!!!
>
> (1- x) == (- x 1)
>
>
> BUT
>
> Those are actually fundamental operators, more fundamental than addition
> and substration, both in a theoric way, and in practice with a lot of
> processors.
>
> They are the operators named succ(x) and pred(x) in pascal (which C
> lacks as independent operators, but have combined with updating with the
> pre- and post- complifications of ++x, x++, --x, and x--; C is THE crazy
> language).
>
>
> In axiomatic number/set theory, we only assume a number noted 0, and a
> succ(x) operation that let us build a new number from any number x.
>
> so 1 = succ(0) by definition. (= 1 (1+ 0))
>
> You do not program it the other way around, defining 1+ from x and 1,
> you define 1 from 1+ and 0!
>
> And the proof, is that processors usually have an increment and a
> decrement operation even while they may lack a general load operation
> (working or any immediate word-sized number).
>
> So when you write x:=512; you may actually obtain a "load #511; incr"
> instruction sequence, ie. (1+ 511).
>
>
>
> So write:
>
> (defun succ (x) (1+ x))
> (defun pred (x) (1- x))
>
> or in elisp:
>
> (defalias 'succ '1+)
> (defalias 'pred '1-)
>
> and use (succ x) instead of (1+ x) or (+ x 1).
>
>
> (Remember that the only literal numbers allowed in a program source are
> 0 and 1; well, it's even better if you allow only 0 and (succ x)).
You are in a funny mood today Pascal!!
Yeah I know that math pre-exists the universe...
And arithmetic is core math
And Peano's axioms are the heart of arithmetic
Yeah Yeah I know I know...
Still choosing identifiers in a programming language (even Lisp!)
to align with Peano's axioms seems a bit much... Dont you think?
On a different note...
For 50 years CS has been living in the impoverished world of ASCII.
This makes people think CS and math are more far apart than they essentially/really are.
I wrote this as my wish for python:
http://blog.languager.org/2014/04/unicoded-python.html
Isn't it about time lisp also considered a similar line?
next prev parent reply other threads:[~2015-03-25 14:02 UTC|newest]
Thread overview: 121+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-23 22:53 if vs. when vs. and: style question Marcin Borkowski
2015-03-24 0:15 ` Pascal J. Bourguignon
2015-03-24 0:34 ` Drew Adams
2015-03-24 0:22 ` Drew Adams
[not found] ` <mailman.2648.1427156603.31049.help-gnu-emacs@gnu.org>
2015-03-24 2:28 ` Emanuel Berg
2015-03-24 6:12 ` Rusi
2015-03-25 0:21 ` Emanuel Berg
2015-03-25 0:20 ` Pascal J. Bourguignon
2015-03-25 2:44 ` Emanuel Berg
2015-03-25 2:51 ` Rusi
2015-03-25 7:12 ` Pascal J. Bourguignon
2015-03-25 14:02 ` Rusi [this message]
2015-03-25 14:40 ` Stefan Monnier
2015-03-25 14:52 ` if vs. when vs. and: style question now Unicode Dan Espen
2015-03-25 15:24 ` Rusi
2015-03-25 15:46 ` Dan Espen
2015-03-25 16:02 ` Rusi
2015-03-25 17:16 ` Dan Espen
2015-03-28 17:55 ` Emanuel Berg
2015-03-25 17:46 ` Rusi
2015-03-25 15:22 ` if vs. when vs. and: style question Pascal J. Bourguignon
2015-03-25 15:37 ` Rusi
2015-03-29 1:17 ` Emanuel Berg
2015-03-25 15:45 ` Rusi
2015-03-29 1:03 ` Emanuel Berg
2015-03-29 2:41 ` Rusi
2015-03-29 3:11 ` Rusi
2015-03-29 14:05 ` Óscar Fuentes
2015-03-29 16:00 ` Drew Adams
2015-03-30 1:55 ` Óscar Fuentes
[not found] ` <mailman.2998.1427680540.31049.help-gnu-emacs@gnu.org>
2015-03-30 2:25 ` Rusi
2015-03-29 18:27 ` Pascal J. Bourguignon
2015-03-30 0:09 ` Stefan Monnier
2015-03-30 1:33 ` Óscar Fuentes
2015-03-30 1:50 ` Stefan Monnier
2015-03-30 9:44 ` tomas
2015-03-30 11:46 ` Óscar Fuentes
[not found] ` <mailman.3016.1427716011.31049.help-gnu-emacs@gnu.org>
2015-03-30 13:03 ` Pascal J. Bourguignon
2015-03-30 14:18 ` Stefan Monnier
2015-03-30 15:21 ` Marcin Borkowski
2015-03-30 15:31 ` Óscar Fuentes
[not found] ` <mailman.3031.1427729518.31049.help-gnu-emacs@gnu.org>
2015-03-30 17:15 ` Pascal J. Bourguignon
[not found] ` <mailman.3030.1427728904.31049.help-gnu-emacs@gnu.org>
2015-03-31 6:26 ` Reality and Proofs (was if vs. when vs. and: style question) Rusi
[not found] ` <mailman.3010.1427708687.31049.help-gnu-emacs@gnu.org>
2015-03-30 12:59 ` if vs. when vs. and: style question Pascal J. Bourguignon
[not found] ` <mailman.2972.1427637975.31049.help-gnu-emacs@gnu.org>
2015-03-30 1:55 ` Rusi
[not found] ` <mailman.2749.1427294481.31049.help-gnu-emacs@gnu.org>
2015-03-25 15:33 ` Rusi
2015-03-25 15:36 ` Pascal J. Bourguignon
2015-03-25 16:06 ` Drew Adams
[not found] ` <mailman.2751.1427299594.31049.help-gnu-emacs@gnu.org>
2015-03-25 16:19 ` Rusi
2015-03-25 16:23 ` Rusi
2015-03-29 1:24 ` Emanuel Berg
2015-03-25 17:02 ` Dan Espen
2015-03-25 18:23 ` Drew Adams
[not found] ` <mailman.2758.1427307846.31049.help-gnu-emacs@gnu.org>
2015-03-25 18:52 ` Dan Espen
2015-03-26 9:47 ` Gian Uberto Lauri
2015-03-29 23:06 ` Emanuel Berg
[not found] ` <mailman.2799.1427363259.31049.help-gnu-emacs@gnu.org>
2015-03-26 10:24 ` Pascal J. Bourguignon
2015-03-26 10:28 ` Pascal J. Bourguignon
2015-03-26 10:47 ` Unicode in source (Was Re: if vs. when vs. and: style question) Gian Uberto Lauri
[not found] ` <mailman.2802.1427366873.31049.help-gnu-emacs@gnu.org>
2015-03-26 15:54 ` Pascal J. Bourguignon
2015-03-26 17:07 ` Gian Uberto Lauri
[not found] ` <mailman.2824.1427389660.31049.help-gnu-emacs@gnu.org>
2015-03-26 17:16 ` Pascal J. Bourguignon
2015-03-26 10:43 ` if vs. when vs. and: style question Gian Uberto Lauri
2015-03-26 13:02 ` Pascal J. Bourguignon
2015-04-01 22:03 ` Emanuel Berg
2015-04-01 22:24 ` Emanuel Berg
2015-03-25 19:17 ` Pascal J. Bourguignon
2015-03-25 20:31 ` Drew Adams
2015-03-25 22:21 ` Richard Wordingham
2015-03-25 23:21 ` Drew Adams
2015-03-25 23:52 ` Richard Wordingham
[not found] ` <mailman.2782.1427325697.31049.help-gnu-emacs@gnu.org>
2015-03-26 3:02 ` Rusi
2015-03-26 10:01 ` Gian Uberto Lauri
[not found] ` <mailman.2800.1427364117.31049.help-gnu-emacs@gnu.org>
2015-03-26 13:00 ` Rusi
2015-03-26 13:28 ` Gian Uberto Lauri
[not found] ` <mailman.2809.1427376497.31049.help-gnu-emacs@gnu.org>
2015-03-26 15:51 ` Pascal J. Bourguignon
2015-03-26 16:21 ` Gian Uberto Lauri
[not found] ` <mailman.2779.1427322080.31049.help-gnu-emacs@gnu.org>
2015-04-01 2:31 ` Emanuel Berg
2015-04-01 3:03 ` Rusi
2015-04-01 14:29 ` Pascal J. Bourguignon
2015-04-01 14:57 ` Rusi
[not found] ` <mailman.2771.1427315503.31049.help-gnu-emacs@gnu.org>
2015-03-26 4:23 ` Rusi
2015-03-25 19:20 ` Pascal J. Bourguignon
2015-03-26 11:37 ` Alan Schmitt
2015-03-30 1:20 ` Emanuel Berg
2015-03-30 2:43 ` Pascal J. Bourguignon
2015-03-30 3:12 ` Rusi
2015-03-25 17:49 ` Pascal J. Bourguignon
2015-03-25 18:09 ` Eli Zaretskii
[not found] ` <mailman.2756.1427307016.31049.help-gnu-emacs@gnu.org>
2015-03-25 21:27 ` Rusi
2015-03-25 21:32 ` Rusi
2015-03-31 16:49 ` Emanuel Berg
2015-03-31 17:22 ` Rusi
2015-04-01 18:08 ` Emanuel Berg
2015-04-01 20:01 ` Pascal J. Bourguignon
2015-03-27 3:54 ` Emanuel Berg
2015-03-27 7:59 ` Gian Uberto Lauri
2015-03-27 8:06 ` tomas
2015-03-27 8:11 ` Gian Uberto Lauri
2015-03-27 9:20 ` tomas
2015-03-27 9:31 ` Gian Uberto Lauri
[not found] ` <mailman.2860.1427443603.31049.help-gnu-emacs@gnu.org>
2015-03-27 12:41 ` Pascal J. Bourguignon
2015-03-27 13:05 ` tomas
[not found] ` <mailman.2875.1427461540.31049.help-gnu-emacs@gnu.org>
2015-03-27 13:35 ` Rusi
2015-03-27 12:34 ` Pascal J. Bourguignon
2015-03-27 0:49 ` Emanuel Berg
2015-03-27 7:53 ` Gian Uberto Lauri
[not found] ` <mailman.2856.1427442800.31049.help-gnu-emacs@gnu.org>
2015-03-27 8:56 ` Joost Kremers
2015-03-27 12:19 ` Pascal J. Bourguignon
2015-03-27 14:20 ` Rusi
2015-03-25 2:35 ` Rusi
2015-03-27 0:31 ` Emanuel Berg
2015-03-27 21:27 ` Emanuel Berg
2015-03-27 22:54 ` Pascal J. Bourguignon
2015-03-28 1:16 ` Rusi
2015-03-28 12:47 ` Pascal J. Bourguignon
2015-03-24 15:18 ` Pascal J. Bourguignon
2015-03-25 0:44 ` Emanuel Berg
2015-03-24 7:21 ` Thien-Thi Nguyen
[not found] ` <mailman.2659.1427181547.31049.help-gnu-emacs@gnu.org>
2015-03-25 0:34 ` Emanuel Berg
[not found] <mailman.2645.1427151196.31049.help-gnu-emacs@gnu.org>
2015-03-23 23:19 ` Emanuel Berg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0d1d19ab-06e9-462d-8867-9a49b1e232d3@googlegroups.com \
--to=rustompmody@gmail.com \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.