Am So., 9. Okt. 2022 um 22:29 Uhr schrieb John Cowan <xxxxxx@ccil.org>: > > > > On Sun, Oct 9, 2022 at 12:07 PM Marc Nieper-Wißkirchen <xxxxxx@gmail.com> wrote: > >> >> By not exporting the record type itself but only its type predicate >> you would model an abstract record type in R6RS. > > > By an abstract type I mean one for which it is possible to create subtypes but not instances, as in C++. Java, or Python. I know; that's why I wrote only to export the type predicate (but not a constructor). That said, the notion of an abstract type doesn't make much sense in the SRFI 76/R6RS/SRFI 99/SRFI 131/SRFI 136/SRFI 150 model of records and inheritance. Assume that you had a record type "foo", which is abstract (in the above sense) and which you can inherit from. Then you just have to write (define-record-type foo2 (parent foo)) and you end up with an equivalent record type that is no longer abstract but whose instances are more or less equivalent to instances of "foo". In the context of C++ or Java, abstract base classes make sense because they have virtual methods that have to be overridden to create a non-abstract child type (so the above "foo2" example would not work). With Scheme records, the closest analog would be like this: (define-record-type abstract-base (fields method) (protocol (lambda (p) (lambda (method) (p (assert method)))))) (define abstract-base-do (lambda (this . args) (apply (abstract-base-method this) this args))) (define-record-type concrete-class (fields x) (protocol (lambda (n) (lambda (x) ((n method-implementation) x))))) (define method-implementation (lambda (this y) (+ (concrete-class-x this) y))) >> As far as an epoch is concerned, on the lowest level, I would not talk >> about this notion but would model the physical notion of Newtonian >> time. Maybe this is my main problem with SRFI 19 in the context of >> SRFI 226. SRFI 19 does not model Newtonian time; instead, it models >> representations (in terms of units) of the physical time observable. > > > It's true that SRFI 19 and friends don't deal in Newtonian time. Rather, they are a finite approximation to Leibnizian time, in which there is no "absolute, true and mathematical time", but only relative (not relativistic) time: time is what we infer from events, rather than events being situated in time. Note however that Newton himself said that his absolute time "by another name is called duration". So SRFI 19's time is perfectly respectable philosophically. I meant "Newtonian time" in the physical sense of the word (as opposed to time being a part of Minkowskian or general spacetime), so the philosophies of Newton or Leibniz do not necessarily apply. In any case, I understand Leibniz's point of view differently. I would Leibniz's point of view instead call Mach's principle (at least one form of it) applied to time alone (and not spacetime). What Leibniz says is that there is no independent time observable; instead, time is an observable dependent on other observables. For example, if I have an unchanging body in an otherwise empty universe, Leibniz would say that there is no time because there is no observable from which it could be derived. Now if the ball rolls on a line, a time observable can be constructed by equating time with the ball's position on the line. >> It would be the same as asking about the unit of measurement of some >> length like the distance between the earth and the sun. > > > I don't understand this analogy. With SRFI 19, you can ask for the type of a time value (e.g. UTC time), i.e. for the epoch. (But then we don't talk about (absolute) time itself, but obviously about a derived concept, namely a particular representation.) [...] >> It's again a question of representation and not of the underlying >> abstract entity. And even in the context of a representation, it is >> usually easier to work with single numbers (e.g. multiples of the >> jiffy) than with pairs of numbers. > > > Jiffies are often too long. I use nanoseconds because that is the unit of Posix file times, even though times are not kept as precisely as that on any actual file system. Nanoseconds would be fine with me as well. But what's the purpose of jiffies in R7RS then? [...]