emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Greg Minshall <minshall@umich.edu>
To: Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>
Cc: emacs-orgmode@gnu.org
Subject: Re: Library of Babel usage of other programming languages than elisp
Date: Mon, 09 Aug 2021 18:23:23 +0300	[thread overview]
Message-ID: <547907.1628522603@apollo2.minshall.org> (raw)
In-Reply-To: Your message of "Mon, 09 Aug 2021 12:52:41 +0000." <e8d99258-6a0d-828e-b6e3-72e4ec84e03d@posteo.de>

Zelphir,

actually...

Everybody,

i have an awkwardness about not being clear of the meaning of "Library
of Babel".  my sense is it a collection of "subroutines".

in my typical use of Org mode for programming, all my code blocks are
defined in the same .org file, and executed in that file, or tangled to
external files (normally, scripts).  i do use <<noweb>> to include bits
from one part of the same file to the code in another part.  i don't
know if this means i am using the Library of Babel or not.

then, on to...

Zelphir,

i also don't know what is going on.  but, installing geiser,
geiser-guile, and running your code from the source block, looking at
the output results, i get an error that might mean something to you?
see below.  (notice i embedded your call to =org-lob-timediff= at the
end of your source code.)

in addition to with elisp, i use org src blocks with R, shell scripts,
awk, etc.  but, never (till now!) with scheme.

hth.  good luck.  i'll be curious what your next steps are.

cheers, Greg
----

#+HEADER: :var dt1="uninitialized1" dt2="uninitialized2"
#+name: org-lob-timediff
#+begin_src scheme :results output
  (import
   (ice-9 format)
   (srfi srfi-19))


  (define org-timestamp->time-utc
    (λ (timestamp-string)
      (let ([parsed-date (string->date timestamp-string "[~Y-~m-~d ~a ~H:~M]")])
            (date->time-utc parsed-date))))


  (define duration->hours
    (λ (duration)
      ;; 1h = 60min = 3600s
      (/ (time-second duration) 3600)))


  (define org-lob-timediff
    (λ (org-dt1 org-dt2)
      ;; formatting float:

      ;; ~@width, decimals, scale, overflowchar, padchar

      ;; ~ placeholder is following
      ;; @ with sign if negative
      ;; width: minimum width
      ;; decimals: minimum number of digits after decimal point
      ;; scale: ???
      ;; overflowchar: ???
      ;; padchar: char to use for padding

      (format #f
              "~,2f"
              (number->string
               (exact->inexact
                (duration->hours
                 (time-difference (org-timestamp->time-utc org-dt2)
                                  (org-timestamp->time-utc org-dt1))))))))
  (org-lob-timediff "[2021-01-01 Fri 00:00]" "[2021-01-01 Fri 01:45]")
#+end_src

#+RESULTS: org-lob-timediff
: ice-9/boot-9.scm:222:17: In procedure map1:
: Syntax error:
: unknown file:12:0: definition in expression context, where definitions are not allowed, in form (define org-timestamp->time-utc (λ (timestamp-string) (let ((parsed-date (string->date timestamp-string "[~Y-~m-~d ~a ~H:~M]"))) (date->time-utc parsed-date))))
: 
: Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
: scheme@(guile-user) [1]> 


  parent reply	other threads:[~2021-08-09 15:24 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09 12:52 Library of Babel usage of other programming languages than elisp Zelphir Kaltstahl
2021-08-09 13:34 ` Eric S Fraga
2021-08-09 14:25   ` Zelphir Kaltstahl
2021-08-09 15:11     ` Eric S Fraga
2021-08-09 16:03       ` Zelphir Kaltstahl
2021-08-10 13:18         ` Eric S Fraga
2021-08-09 15:23 ` Greg Minshall [this message]
2021-08-09 16:27   ` Zelphir Kaltstahl
2021-08-09 18:36     ` Greg Minshall
2021-08-10  5:49 ` Dr. Arne Babenhauserheide
2021-08-11 10:01   ` Zelphir Kaltstahl

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

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=547907.1628522603@apollo2.minshall.org \
    --to=minshall@umich.edu \
    --cc=emacs-orgmode@gnu.org \
    --cc=zelphirkaltstahl@posteo.de \
    /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 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).