emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
@ 2019-09-25  9:50 Justus Winter
  2019-09-25 12:51 ` Fraga, Eric
  0 siblings, 1 reply; 5+ messages in thread
From: Justus Winter @ 2019-09-25  9:50 UTC (permalink / raw)
  To: emacs-orgmode



Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

     https://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org mailing list.
------------------------------------------------------------------------

I noticed a operator associativity problem when evaluating formulas in
tables.  To reproduce, enter:

| :=6/2*3 |

And evaluate the formula.  This results in:

| 1 |
#+TBLFM: @1$1=6/2*3

Whereas AIUI it should be 9:

% gcc -x c - <<< 'int main() { return 6/2*3; }' && ./a.out ; echo $?
9
% python -c 'print(6/2*3)'
9

Emacs  : GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.4)
 of 2019-02-03, modified by Debian
Package: Org mode version 9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)

current state:
==============
(setq
 org-src-mode-hook '(org-src-babel-configure-edit-buffer
		     org-src-mode-configure-edit-buffer)
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-clock-out-hook '(org-clock-remove-empty-clock-drawer)
 org-mode-hook '(#[0 "\300\301\302\303\304$\207"
		   [add-hook change-major-mode-hook org-show-block-all append
		    local]
		   5]
		 #[0 "\300\301\302\303\304$\207"
		   [add-hook change-major-mode-hook org-babel-show-result-all
		    append local]
		   5]
		 org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-archive-hook '(org-attach-archive-delete-maybe)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-bibtex-headline-format-function #[257 "\300\236A\207" [:title] 3 "\n\n(fn ENTRY)"]
 org-babel-pre-tangle-hook '(save-buffer)
 org-tab-first-hook '(org-babel-hide-result-toggle-maybe
		      org-babel-header-arg-expand)
 org-occur-hook '(org-first-headline-recenter)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers
		  org-cycle-show-empty-lines
		  org-optimize-window-after-visibility-change)
 org-speed-command-hook '(org-speed-command-activate
			  org-babel-speed-command-activate)
 org-confirm-shell-link-function 'yes-or-no-p
 org-link-parameters '(("id" :follow org-id-open)
		       ("rmail" :follow org-rmail-open :store
			org-rmail-store-link)
		       ("mhe" :follow org-mhe-open :store org-mhe-store-link)
		       ("irc" :follow org-irc-visit :store org-irc-store-link)
		       ("info" :follow org-info-open :export org-info-export
			:store org-info-store-link)
		       ("gnus" :follow org-gnus-open :store
			org-gnus-store-link)
		       ("docview" :follow org-docview-open :export
			org-docview-export :store org-docview-store-link)
		       ("bibtex" :follow org-bibtex-open :store
			org-bibtex-store-link)
		       ("bbdb" :follow org-bbdb-open :export org-bbdb-export
			:complete org-bbdb-complete-link :store
			org-bbdb-store-link)
		       ("w3m" :store org-w3m-store-link) ("file+sys")
		       ("file+emacs") ("doi" :follow org--open-doi-link)
		       ("elisp" :follow org--open-elisp-link)
		       ("file" :complete org-file-complete-link)
		       ("ftp" :follow
			(lambda (path) (browse-url (concat "ftp:" path))))
		       ("help" :follow org--open-help-link)
		       ("http" :follow
			(lambda (path) (browse-url (concat "http:" path))))
		       ("https" :follow
			(lambda (path) (browse-url (concat "https:" path))))
		       ("mailto" :follow
			(lambda (path) (browse-url (concat "mailto:" path))))
		       ("news" :follow
			(lambda (path) (browse-url (concat "news:" path))))
		       ("shell" :follow org--open-shell-link))
 )

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
  2019-09-25  9:50 Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)] Justus Winter
@ 2019-09-25 12:51 ` Fraga, Eric
  2019-09-25 18:16   ` Justus Winter
  0 siblings, 1 reply; 5+ messages in thread
From: Fraga, Eric @ 2019-09-25 12:51 UTC (permalink / raw)
  To: Justus Winter; +Cc: emacs-orgmode@gnu.org

On Wednesday, 25 Sep 2019 at 11:50, Justus Winter wrote:
> I noticed a operator associativity problem when evaluating formulas in
> tables.  To reproduce, enter:
>
> | :=6/2*3 |
>
> And evaluate the formula.  This results in:
>
> | 1 |
> #+TBLFM: @1$1=6/2*3

Yes, this is a property (feature, ?) of Emacs Calc.

-- 
Eric S Fraga via Emacs 27.0.50, Org release_9.2.4-401-gfabd6d

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
  2019-09-25 12:51 ` Fraga, Eric
@ 2019-09-25 18:16   ` Justus Winter
  2019-09-26  5:23     ` Fraga, Eric
  2019-09-26  9:23     ` Robert Pluim
  0 siblings, 2 replies; 5+ messages in thread
From: Justus Winter @ 2019-09-25 18:16 UTC (permalink / raw)
  To: Fraga, Eric; +Cc: emacs-orgmode@gnu.org

[-- Attachment #1: Type: text/plain, Size: 675 bytes --]

"Fraga, Eric" <e.fraga@ucl.ac.uk> writes:

> On Wednesday, 25 Sep 2019 at 11:50, Justus Winter wrote:
>> I noticed a operator associativity problem when evaluating formulas in
>> tables.  To reproduce, enter:
>>
>> | :=6/2*3 |
>>
>> And evaluate the formula.  This results in:
>>
>> | 1 |
>> #+TBLFM: @1$1=6/2*3
>
> Yes, this is a property (feature, ?) of Emacs Calc.

Wow!  Re-reading the org-mode documentation I see that it is prominently
mentioned indeed, and that it is an precedence thing, not an
associativity one.

However, I cannot fathom the rationale behind this property, and for a
spreadsheet-like application I consider it borderline negligent.

Thanks,
Justus

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
  2019-09-25 18:16   ` Justus Winter
@ 2019-09-26  5:23     ` Fraga, Eric
  2019-09-26  9:23     ` Robert Pluim
  1 sibling, 0 replies; 5+ messages in thread
From: Fraga, Eric @ 2019-09-26  5:23 UTC (permalink / raw)
  To: Justus Winter; +Cc: emacs-orgmode@gnu.org

On Wednesday, 25 Sep 2019 at 20:16, Justus Winter wrote:
> However, I cannot fathom the rationale behind this property, and for a
> spreadsheet-like application I consider it borderline negligent.

Not my place to defend (or otherwise) the decisions that went into defining the grammar for Calc.  However, there is no single universal precedence definition for algebraic expressions.  People do write, e.g. in heat transfer applications, W/m^2 K to mean W/(m^2 K) which is not the precedence you believe should be implemented.  Just because Excel, say, implements something does not make it negligent for others to implement something different.

As a mathematician, I always write my expressions as, for instance, W m^{-2} K^{-1} both in practice and when teaching to avoid all doubt.

-- 
Eric S Fraga via Emacs 27.0.50, Org release_9.2.4-401-gfabd6d

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
  2019-09-25 18:16   ` Justus Winter
  2019-09-26  5:23     ` Fraga, Eric
@ 2019-09-26  9:23     ` Robert Pluim
  1 sibling, 0 replies; 5+ messages in thread
From: Robert Pluim @ 2019-09-26  9:23 UTC (permalink / raw)
  To: Justus Winter; +Cc: emacs-orgmode@gnu.org, Fraga, Eric

[-- Attachment #1: Type: text/plain, Size: 794 bytes --]

>>>>> On Wed, 25 Sep 2019 20:16:26 +0200, Justus Winter <justus@sequoia-pgp.org> said:

    Justus> "Fraga, Eric" <e.fraga@ucl.ac.uk> writes:
    >> On Wednesday, 25 Sep 2019 at 11:50, Justus Winter wrote:
    >>> I noticed a operator associativity problem when evaluating formulas in
    >>> tables.  To reproduce, enter:
    >>> 
    >>> | :=6/2*3 |
    >>> 
    >>> And evaluate the formula.  This results in:
    >>> 
    >>> | 1 |
    >>> #+TBLFM: @1$1=6/2*3
    >> 
    >> Yes, this is a property (feature, ?) of Emacs Calc.

    Justus> Wow!  Re-reading the org-mode documentation I see that it is prominently
    Justus> mentioned indeed, and that it is an precedence thing, not an
    Justus> associativity one.

See 'calc-multiplication-has-precedence'

Robert

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-09-26  9:24 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-25  9:50 Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)] Justus Winter
2019-09-25 12:51 ` Fraga, Eric
2019-09-25 18:16   ` Justus Winter
2019-09-26  5:23     ` Fraga, Eric
2019-09-26  9:23     ` Robert Pluim

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).