Re: [O] Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
> On Wed, 25 Sep 2019 20:16:26 +0200, Justus Winter > said: Justus> "Fraga, Eric" 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 signature.asc Description: PGP signature
Re: [O] Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/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
Re: [O] Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
"Fraga, Eric" 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 signature.asc Description: PGP signature
Re: [O] Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/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
[O] Bug: Operator associativity problem [9.1.9 (release_9.1.9-65-g5e4542 @ /usr/share/emacs/26.1/lisp/org/)]
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)) )