switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
'(r-expressions (<- Sys.time (lambda ()
|
2019-08-09 10:18:36 -04:00
|
|
|
(let () (r-block (r-call structure (r-call
|
|
|
|
.Internal (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
Sys.time))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* class (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
c "POSIXt" "POSIXct")))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- Sys.timezone (lambda ()
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call as.vector (r-call
|
|
|
|
Sys.getenv
|
|
|
|
"TZ"))))))
|
|
|
|
(<- as.POSIXlt (lambda (x tz)
|
|
|
|
(let ((x ())
|
|
|
|
(tzone ())
|
|
|
|
(fromchar ())
|
|
|
|
(tz ()))
|
|
|
|
(r-block (when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(<- fromchar (lambda (x)
|
|
|
|
(let ((res ())
|
|
|
|
(f ())
|
|
|
|
(j ())
|
|
|
|
(xx ()))
|
|
|
|
(r-block (<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
xx (r-call r-index x 1))
|
2009-07-26 23:34:33 -04:00
|
|
|
(if (r-call is.na xx) (r-block (<- j 1)
|
2019-08-09 10:18:36 -04:00
|
|
|
(while (&& (r-call is.na xx)
|
|
|
|
(r-call <= (<- j (r-call + j 1))
|
|
|
|
(r-call length x)))
|
|
|
|
(<- xx (r-call r-index x j)))
|
|
|
|
(if (r-call is.na xx)
|
|
|
|
(<- f "%Y-%m-%d"))))
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
(if (|\|\|| (r-call is.na xx) (r-call ! (r-call is.na (r-call strptime xx
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- f "%Y-%m-%d %H:%M:%OS"))))
|
|
|
|
(r-call ! (r-call is.na (r-call strptime xx
|
|
|
|
(<- f "%Y/%m/%d %H:%M:%OS"))))
|
|
|
|
(r-call ! (r-call is.na (r-call strptime xx
|
|
|
|
(<- f "%Y-%m-%d %H:%M"))))
|
|
|
|
(r-call ! (r-call is.na (r-call strptime xx
|
|
|
|
(<- f "%Y/%m/%d %H:%M"))))
|
|
|
|
(r-call ! (r-call is.na (r-call strptime xx
|
|
|
|
(<- f "%Y-%m-%d"))))
|
|
|
|
(r-call ! (r-call is.na (r-call strptime xx
|
|
|
|
(<- f "%Y/%m/%d")))))
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
(r-block (<- res (r-call strptime x f))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (r-call nchar tz) (r-block (<- res (r-call attr<- res "tzone"
|
|
|
|
tz))
|
|
|
|
tz))
|
|
|
|
(return res)))
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
(r-call stop "character string is not in a standard unambiguous format")))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (r-call inherits x "POSIXlt")
|
|
|
|
(return x))
|
|
|
|
(if (r-call inherits x "Date")
|
|
|
|
(return (r-call .Internal (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
Date2POSIXlt x))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- tzone (r-call attr x "tzone"))
|
|
|
|
(if (|\|\|| (r-call inherits x "date")
|
|
|
|
(r-call inherits x "dates"))
|
|
|
|
(<- x (r-call as.POSIXct x)))
|
|
|
|
(if (r-call is.character x)
|
|
|
|
(return (r-call fromchar (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
unclass x))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (r-call is.factor x)
|
|
|
|
(return (r-call fromchar (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
as.character x))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (&& (r-call is.logical x)
|
|
|
|
(r-call all (r-call is.na
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
x)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- x (r-call
|
|
|
|
as.POSIXct.default x)))
|
|
|
|
(if (r-call ! (r-call inherits x
|
|
|
|
"POSIXct"))
|
|
|
|
(r-call stop (r-call gettextf
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
"do not know how to convert '%s' to class \"POSIXlt\""
|
|
|
|
(r-call deparse (substitute x)))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (&& (missing tz)
|
|
|
|
(r-call ! (r-call is.null
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
tzone)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- tz (r-call r-index tzone
|
|
|
|
1)))
|
|
|
|
(r-call .Internal (r-call
|
|
|
|
as.POSIXlt x
|
|
|
|
tz))))))
|
|
|
|
(<- as.POSIXct (lambda (x tz)
|
|
|
|
(let ((tz ()))
|
|
|
|
(r-block (when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(r-call UseMethod "as.POSIXct")))))
|
|
|
|
(<- as.POSIXct.Date (lambda (x ...)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call structure (r-call *
|
2009-07-26 23:34:33 -04:00
|
|
|
(r-call unclass x) 86400)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* class (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
c "POSIXt" "POSIXct")))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- as.POSIXct.date (lambda (x ...)
|
|
|
|
(let ((x ()))
|
|
|
|
(r-block (if (r-call inherits x "date")
|
|
|
|
(r-block (<- x (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
* (r-call - x 3653) 86400))
|
2019-08-09 10:18:36 -04:00
|
|
|
(return (r-call
|
2009-07-26 23:34:33 -04:00
|
|
|
structure x (*named* class (r-call c "POSIXt" "POSIXct")))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call stop (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
gettextf "'%s' is not a \"date\" object"
|
|
|
|
(r-call deparse (substitute x)))))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- as.POSIXct.dates (lambda (x ...)
|
|
|
|
(let ((x ())
|
|
|
|
(z ()))
|
|
|
|
(r-block (if (r-call inherits x "dates")
|
|
|
|
(r-block (<- z (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
attr x "origin"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- x (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
* (r-call as.numeric x) 86400))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (&& (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
== (r-call length z) 3)
|
|
|
|
(r-call is.numeric z))
|
|
|
|
(<- x (r-call + x
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call as.numeric (r-call ISOdate (r-call r-index z 3)
|
|
|
|
(r-call r-index z 1)
|
|
|
|
(r-call r-index z 2) 0)))))
|
|
|
|
(return (r-call
|
2009-07-26 23:34:33 -04:00
|
|
|
structure x (*named* class (r-call c "POSIXt" "POSIXct")))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call stop (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
gettextf "'%s' is not a \"dates\" object"
|
|
|
|
(r-call deparse (substitute x)))))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- as.POSIXct.POSIXlt (lambda (x tz)
|
|
|
|
(let ((tzone ())
|
|
|
|
(tz ()))
|
|
|
|
(r-block (when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(<- tzone (r-call attr x
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
"tzone"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (&& (missing tz)
|
|
|
|
(r-call ! (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
is.null tzone)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- tz (r-call
|
|
|
|
r-index tzone
|
|
|
|
1)))
|
|
|
|
(r-call structure (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
.Internal (r-call as.POSIXct x tz))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* class (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
c "POSIXt" "POSIXct"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* tzone tz))))))
|
|
|
|
(<- as.POSIXct.default (lambda (x tz)
|
|
|
|
(let ((tz ()))
|
|
|
|
(r-block (when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(if (r-call inherits x "POSIXct")
|
|
|
|
(return x))
|
|
|
|
(if (|\|\|| (r-call
|
|
|
|
is.character
|
|
|
|
x)
|
|
|
|
(r-call
|
|
|
|
is.factor x))
|
|
|
|
(return (r-call
|
|
|
|
as.POSIXct
|
|
|
|
(r-call
|
|
|
|
as.POSIXlt
|
|
|
|
x)
|
|
|
|
tz)))
|
|
|
|
(if (&& (r-call
|
|
|
|
is.logical x)
|
|
|
|
(r-call all (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
is.na x)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(return (r-call
|
|
|
|
structure (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
as.numeric x)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named*
|
|
|
|
class (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
c "POSIXt" "POSIXct")))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call stop (r-call
|
|
|
|
gettextf "do not know how to convert '%s' to class \"POSIXlt\""
|
|
|
|
(r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
deparse (substitute x))))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- as.numeric.POSIXlt (lambda (x)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call as.POSIXct x)))))
|
|
|
|
(<- format.POSIXlt (lambda (x format usetz ...)
|
|
|
|
(let ((np ())
|
|
|
|
(secs ())
|
|
|
|
(times ())
|
|
|
|
(usetz ())
|
|
|
|
(format ()))
|
|
|
|
(r-block (when (missing format)
|
|
|
|
(<- format ""))
|
|
|
|
(when (missing usetz)
|
|
|
|
(<- usetz *r-false*))
|
|
|
|
(if (r-call ! (r-call
|
|
|
|
inherits x "POSIXlt"))
|
|
|
|
(r-call stop "wrong class"))
|
|
|
|
(if (r-call == format "")
|
|
|
|
(r-block (<- times (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
unlist (r-call r-index (r-call unclass x)
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call : 1 3))))
|
|
|
|
(<- secs (r-call
|
2009-07-26 23:34:33 -04:00
|
|
|
r-aref x (index-in-strlist sec (r-call attr x #0="names"))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- secs (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
r-index secs (r-call ! (r-call is.na secs))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- np (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
getOption "digits.secs"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (r-call
|
|
|
|
is.null np)
|
|
|
|
(<- np 0)
|
|
|
|
(<- np (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
min 6 np)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (r-call >=
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
np 1)
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-block (for
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
i (r-call - (r-call : 1 np) 1)
|
|
|
|
(if (r-call all (r-call < (r-call abs (r-call - secs
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call round secs i)))
|
|
|
|
9.9999999999999995e-07))
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
(r-block (<- np i) (break))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- format (if
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
(r-call all (r-call == (r-call r-index times
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call ! (r-call is.na times)))
|
|
|
|
0))
|
2009-07-26 23:34:33 -04:00
|
|
|
"%Y-%m-%d" (if (r-call == np 0) "%Y-%m-%d %H:%M:%S"
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call paste "%Y-%m-%d %H:%M:%OS" np
|
|
|
|
(*named* sep "")))))))
|
|
|
|
(r-call .Internal (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
format.POSIXlt x format usetz))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- strftime format.POSIXlt)
|
|
|
|
(<- strptime (lambda (x format tz)
|
|
|
|
(let ((tz ()))
|
|
|
|
(r-block (when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(r-call .Internal (r-call strptime
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
(r-call as.character x) format tz))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- format.POSIXct (lambda (x format tz usetz ...)
|
|
|
|
(let ((tzone ())
|
|
|
|
(usetz ())
|
|
|
|
(tz ())
|
|
|
|
(format ()))
|
|
|
|
(r-block (when (missing format)
|
|
|
|
(<- format ""))
|
|
|
|
(when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(when (missing usetz)
|
|
|
|
(<- usetz *r-false*))
|
|
|
|
(if (r-call ! (r-call
|
|
|
|
inherits x "POSIXct"))
|
|
|
|
(r-call stop "wrong class"))
|
|
|
|
(if (&& (missing tz)
|
|
|
|
(r-call ! (r-call
|
2009-07-26 23:34:33 -04:00
|
|
|
is.null (<- tzone (r-call attr x "tzone")))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- tz tzone))
|
|
|
|
(r-call structure (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
format.POSIXlt (r-call as.POSIXlt x tz) format usetz r-dotdotdot)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* names (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
names x)))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- print.POSIXct (lambda (x ...)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call print (r-call format
|
2009-07-26 23:34:33 -04:00
|
|
|
x (*named* usetz *r-true*) r-dotdotdot)
|
2019-08-09 10:18:36 -04:00
|
|
|
r-dotdotdot)
|
|
|
|
(r-call invisible x)))))
|
|
|
|
(<- print.POSIXlt (lambda (x ...)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call print (r-call format
|
2009-07-26 23:34:33 -04:00
|
|
|
x (*named* usetz *r-true*))
|
2019-08-09 10:18:36 -04:00
|
|
|
r-dotdotdot)
|
|
|
|
(r-call invisible x)))))
|
|
|
|
(<- summary.POSIXct (lambda (object digits ...)
|
|
|
|
(let ((x ())
|
|
|
|
(digits ()))
|
|
|
|
(r-block (when (missing digits)
|
|
|
|
(<- digits 15))
|
|
|
|
(<- x (r-call r-index (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
summary.default (r-call unclass object)
|
|
|
|
(*named* digits digits) r-dotdotdot)
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call : 1 6)))
|
|
|
|
(r-block (ref= %r:1 (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
oldClass object))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- x (r-call
|
|
|
|
class<- x
|
|
|
|
%r:1))
|
|
|
|
%r:1)
|
|
|
|
(r-block (ref= %r:2 (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
attr object "tzone"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- x (r-call
|
|
|
|
attr<- x "tzone"
|
|
|
|
%r:2))
|
|
|
|
%r:2)
|
|
|
|
x))))
|
|
|
|
(<- summary.POSIXlt (lambda (object digits ...)
|
|
|
|
(let ((digits ()))
|
|
|
|
(r-block (when (missing digits)
|
|
|
|
(<- digits 15))
|
|
|
|
(r-call summary (r-call
|
|
|
|
as.POSIXct
|
|
|
|
object)
|
|
|
|
(*named* digits
|
|
|
|
digits)
|
|
|
|
r-dotdotdot)))))
|
|
|
|
(<- "+.POSIXt" (lambda (e1 e2)
|
|
|
|
(let ((e2 ())
|
|
|
|
(e1 ())
|
|
|
|
(coerceTimeUnit ()))
|
|
|
|
(r-block (<- coerceTimeUnit (lambda (x)
|
|
|
|
(let ()
|
2009-07-26 23:34:33 -04:00
|
|
|
(r-block (switch (r-call attr x "units")
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* secs x) (*named* mins (r-call * 60 x))
|
|
|
|
(*named* hours (r-call * (r-call * 60 60) x))
|
|
|
|
(*named* days (r-call * (r-call * (r-call * 60 60) 24) x))
|
|
|
|
(*named* weeks (r-call * (r-call * (r-call * (r-call * 60 60)
|
|
|
|
24)
|
|
|
|
7)
|
|
|
|
x)))))))
|
|
|
|
(if (r-call == (r-call nargs) 1)
|
|
|
|
(return e1))
|
|
|
|
(if (&& (r-call inherits e1 "POSIXt")
|
|
|
|
(r-call inherits e2 "POSIXt"))
|
|
|
|
(r-call stop "binary + is not defined for \"POSIXt\" objects"))
|
|
|
|
(if (r-call inherits e1 "POSIXlt")
|
|
|
|
(<- e1 (r-call as.POSIXct e1)))
|
|
|
|
(if (r-call inherits e2 "POSIXlt")
|
|
|
|
(<- e2 (r-call as.POSIXct e2)))
|
|
|
|
(if (r-call inherits e1 "difftime")
|
|
|
|
(<- e1 (r-call coerceTimeUnit
|
|
|
|
e1)))
|
|
|
|
(if (r-call inherits e2 "difftime")
|
|
|
|
(<- e2 (r-call coerceTimeUnit
|
|
|
|
e2)))
|
|
|
|
(r-call structure (r-call + (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
unclass e1)
|
|
|
|
(r-call unclass e2))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* class (r-call c
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
"POSIXt" "POSIXct"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* tzone (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
check_tzones e1 e2)))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- "-.POSIXt" (lambda (e1 e2)
|
|
|
|
(let ((e2 ())
|
|
|
|
(coerceTimeUnit ()))
|
|
|
|
(r-block (<- coerceTimeUnit (lambda (x)
|
|
|
|
(let ()
|
2009-07-26 23:34:33 -04:00
|
|
|
(r-block (switch (r-call attr x "units")
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* secs x) (*named* mins (r-call * 60 x))
|
|
|
|
(*named* hours (r-call * (r-call * 60 60) x))
|
|
|
|
(*named* days (r-call * (r-call * (r-call * 60 60) 24) x))
|
|
|
|
(*named* weeks (r-call * (r-call * (r-call * (r-call * 60 60)
|
|
|
|
24)
|
|
|
|
7)
|
|
|
|
x)))))))
|
|
|
|
(if (r-call ! (r-call inherits e1
|
|
|
|
"POSIXt"))
|
|
|
|
(r-call stop "Can only subtract from POSIXt objects"))
|
|
|
|
(if (r-call == (r-call nargs) 1)
|
|
|
|
(r-call stop "unary - is not defined for \"POSIXt\" objects"))
|
|
|
|
(if (r-call inherits e2 "POSIXt")
|
|
|
|
(return (r-call difftime e1
|
|
|
|
e2)))
|
|
|
|
(if (r-call inherits e2 "difftime")
|
|
|
|
(<- e2 (r-call unclass (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
coerceTimeUnit e2))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (r-call ! (r-call is.null (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
attr e2 "class")))
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call stop "can only subtract numbers from POSIXt objects"))
|
|
|
|
(r-call structure (r-call - (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
unclass (r-call as.POSIXct e1))
|
|
|
|
e2)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* class (r-call c
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
"POSIXt" "POSIXct")))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- Ops.POSIXt (lambda (e1 e2)
|
|
|
|
(let ((e2 ())
|
|
|
|
(e1 ())
|
|
|
|
(boolean ()))
|
|
|
|
(r-block (if (r-call == (r-call nargs) 1)
|
|
|
|
(r-call stop "unary" .Generic
|
|
|
|
" not defined for \"POSIXt\" objects"))
|
|
|
|
(<- boolean (switch .Generic (*named*
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
< *r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* >
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
*r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* ==
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
*r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* !=
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
*r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* <=
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
*r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* >=
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
*r-true*)
|
2019-08-09 10:18:36 -04:00
|
|
|
*r-false*))
|
|
|
|
(if (r-call ! boolean)
|
|
|
|
(r-call stop .Generic
|
|
|
|
" not defined for \"POSIXt\" objects"))
|
|
|
|
(if (|\|\|| (r-call inherits e1
|
|
|
|
"POSIXlt")
|
|
|
|
(r-call is.character
|
|
|
|
e1))
|
|
|
|
(<- e1 (r-call as.POSIXct e1)))
|
|
|
|
(if (|\|\|| (r-call inherits e2
|
|
|
|
"POSIXlt")
|
|
|
|
(r-call is.character
|
|
|
|
e1))
|
|
|
|
(<- e2 (r-call as.POSIXct e2)))
|
|
|
|
(r-call check_tzones e1 e2)
|
|
|
|
(r-call NextMethod .Generic)))))
|
|
|
|
(<- Math.POSIXt (lambda (x ...)
|
|
|
|
(let () (r-block (r-call stop .Generic
|
|
|
|
" not defined for POSIXt objects")))))
|
|
|
|
(<- check_tzones (lambda (...)
|
|
|
|
(let ((tzs ()))
|
|
|
|
(r-block (<- tzs (r-call unique (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
sapply (r-call list r-dotdotdot) (lambda (x)
|
2019-08-09 10:18:36 -04:00
|
|
|
(let ((y ()))
|
|
|
|
(r-block (<- y (r-call attr x "tzone"))
|
|
|
|
(if (r-call is.null y) "" y)))))))
|
|
|
|
(<- tzs (r-call r-index tzs
|
|
|
|
(r-call != tzs
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
"")))
|
2019-08-09 10:18:36 -04:00
|
|
|
(if (r-call > (r-call length
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
tzs)
|
2019-08-09 10:18:36 -04:00
|
|
|
1)
|
|
|
|
(r-call warning "'tzone' attributes are inconsistent"))
|
|
|
|
(if (r-call length tzs)
|
|
|
|
(r-call r-index tzs 1)
|
|
|
|
())))))
|
|
|
|
(<- Summary.POSIXct (lambda (... na.rm)
|
|
|
|
(let ((val ())
|
|
|
|
(tz ())
|
|
|
|
(args ())
|
|
|
|
(ok ()))
|
|
|
|
(r-block (<- ok (switch .Generic (*named*
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
max *r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* min
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
*r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named*
|
|
|
|
range
|
|
|
|
*r-true*)
|
|
|
|
*r-false*))
|
|
|
|
(if (r-call ! ok)
|
|
|
|
(r-call stop .Generic
|
|
|
|
" not defined for \"POSIXct\" objects"))
|
|
|
|
(<- args (r-call list
|
|
|
|
r-dotdotdot))
|
|
|
|
(<- tz (r-call do.call "check_tzones"
|
|
|
|
args))
|
|
|
|
(<- val (r-call NextMethod
|
|
|
|
.Generic))
|
|
|
|
(r-block (ref= %r:3 (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
oldClass (r-call r-aref args 1)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- val (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
class<- val %r:3))
|
2019-08-09 10:18:36 -04:00
|
|
|
%r:3)
|
|
|
|
(r-block (<- val (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
attr<- val "tzone" tz))
|
2019-08-09 10:18:36 -04:00
|
|
|
tz)
|
|
|
|
val))))
|
|
|
|
(<- Summary.POSIXlt (lambda (... na.rm)
|
|
|
|
(let ((val ())
|
|
|
|
(tz ())
|
|
|
|
(args ())
|
|
|
|
(ok ()))
|
|
|
|
(r-block (<- ok (switch .Generic (*named*
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
max *r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* min
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
*r-missing*)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named*
|
|
|
|
range
|
|
|
|
*r-true*)
|
|
|
|
*r-false*))
|
|
|
|
(if (r-call ! ok)
|
|
|
|
(r-call stop .Generic
|
|
|
|
" not defined for \"POSIXlt\" objects"))
|
|
|
|
(<- args (r-call list
|
|
|
|
r-dotdotdot))
|
|
|
|
(<- tz (r-call do.call "check_tzones"
|
|
|
|
args))
|
|
|
|
(<- args (r-call lapply args
|
|
|
|
as.POSIXct))
|
|
|
|
(<- val (r-call do.call
|
|
|
|
.Generic (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
c args (*named* na.rm na.rm))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(r-call as.POSIXlt (r-call
|
2009-07-26 23:34:33 -04:00
|
|
|
structure val (*named* class (r-call c "POSIXt" "POSIXct"))
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
(*named* tzone tz)))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- "[.POSIXct" (lambda (x ... drop)
|
|
|
|
(let ((val ())
|
|
|
|
(x ())
|
|
|
|
(cl ())
|
|
|
|
(drop ()))
|
|
|
|
(r-block (when (missing drop)
|
|
|
|
(<- drop *r-true*))
|
|
|
|
(<- cl (r-call oldClass x))
|
|
|
|
(r-block (<- x (r-call class<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
x ()))
|
2019-08-09 10:18:36 -04:00
|
|
|
())
|
|
|
|
(<- val (r-call NextMethod "["))
|
|
|
|
(r-block (<- val (r-call class<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
val cl))
|
2019-08-09 10:18:36 -04:00
|
|
|
cl)
|
|
|
|
(r-block (ref= %r:4 (r-call attr
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
x "tzone"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- val (r-call attr<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
val "tzone" %r:4))
|
2019-08-09 10:18:36 -04:00
|
|
|
%r:4)
|
|
|
|
val))))
|
|
|
|
(<- "[[.POSIXct" (lambda (x ... drop)
|
|
|
|
(let ((val ())
|
|
|
|
(x ())
|
|
|
|
(cl ())
|
|
|
|
(drop ()))
|
|
|
|
(r-block (when (missing drop)
|
|
|
|
(<- drop *r-true*))
|
|
|
|
(<- cl (r-call oldClass x))
|
|
|
|
(r-block (<- x (r-call class<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
x ()))
|
2019-08-09 10:18:36 -04:00
|
|
|
())
|
|
|
|
(<- val (r-call NextMethod "[["))
|
|
|
|
(r-block (<- val (r-call
|
|
|
|
class<- val
|
|
|
|
cl))
|
|
|
|
cl)
|
|
|
|
(r-block (ref= %r:5 (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
attr x "tzone"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- val (r-call attr<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
val "tzone" %r:5))
|
2019-08-09 10:18:36 -04:00
|
|
|
%r:5)
|
|
|
|
val))))
|
|
|
|
(<- "[<-.POSIXct" (lambda (x ... value)
|
|
|
|
(let ((x ())
|
|
|
|
(tz ())
|
|
|
|
(cl ())
|
|
|
|
(value ()))
|
|
|
|
(r-block (if (r-call ! (r-call
|
|
|
|
as.logical (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
length value)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(return x))
|
|
|
|
(<- value (r-call as.POSIXct
|
|
|
|
value))
|
|
|
|
(<- cl (r-call oldClass x))
|
|
|
|
(<- tz (r-call attr x "tzone"))
|
|
|
|
(r-block (ref= %r:6 (r-block
|
2009-07-26 23:34:33 -04:00
|
|
|
(<- value (r-call class<- value
|
2019-08-09 10:18:36 -04:00
|
|
|
()))
|
2009-07-26 23:34:33 -04:00
|
|
|
()))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- x (r-call class<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
x %r:6))
|
2019-08-09 10:18:36 -04:00
|
|
|
%r:6)
|
|
|
|
(<- x (r-call NextMethod
|
|
|
|
.Generic))
|
|
|
|
(r-block (<- x (r-call class<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
x cl))
|
2019-08-09 10:18:36 -04:00
|
|
|
cl)
|
|
|
|
(r-block (<- x (r-call attr<-
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
x "tzone" tz))
|
2019-08-09 10:18:36 -04:00
|
|
|
tz)
|
|
|
|
x))))
|
|
|
|
(<- as.character.POSIXt (lambda (x ...)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call format x
|
|
|
|
r-dotdotdot)))))
|
|
|
|
(<- as.data.frame.POSIXct as.data.frame.vector)
|
|
|
|
(<- is.na.POSIXlt (lambda (x)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call is.na (r-call
|
|
|
|
as.POSIXct x))))))
|
|
|
|
(<- c.POSIXct (lambda (... recursive)
|
|
|
|
(let ((recursive ()))
|
|
|
|
(r-block (when (missing recursive)
|
|
|
|
(<- recursive *r-false*))
|
|
|
|
(r-call structure (r-call c (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
unlist (r-call lapply (r-call list r-dotdotdot) unclass)))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* class (r-call c
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
"POSIXt" "POSIXct")))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- c.POSIXlt (lambda (... recursive)
|
|
|
|
(let ((recursive ()))
|
|
|
|
(r-block (when (missing recursive)
|
|
|
|
(<- recursive *r-false*))
|
|
|
|
(r-call as.POSIXlt (r-call do.call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
"c" (r-call lapply (r-call list r-dotdotdot) as.POSIXct)))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- all.equal.POSIXct (lambda (target current ... scale)
|
|
|
|
(let ((scale ()))
|
|
|
|
(r-block (when (missing scale)
|
|
|
|
(<- scale 1))
|
|
|
|
(r-call check_tzones
|
|
|
|
target current)
|
|
|
|
(r-call NextMethod "all.equal")))))
|
|
|
|
(<- ISOdatetime (lambda (year month day hour min sec tz)
|
|
|
|
(let ((x ())
|
|
|
|
(tz ()))
|
|
|
|
(r-block (when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(<- x (r-call paste year month
|
|
|
|
day hour min sec
|
|
|
|
(*named* sep "-")))
|
|
|
|
(r-call as.POSIXct (r-call
|
|
|
|
strptime x
|
|
|
|
"%Y-%m-%d-%H-%M-%OS"
|
|
|
|
(*named* tz
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
tz))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* tz tz))))))
|
|
|
|
(<- ISOdate (lambda (year month day hour min sec tz)
|
|
|
|
(let ((tz ())
|
|
|
|
(sec ())
|
|
|
|
(min ())
|
|
|
|
(hour ()))
|
|
|
|
(r-block (when (missing hour)
|
|
|
|
(<- hour 12))
|
|
|
|
(when (missing min)
|
|
|
|
(<- min 0))
|
|
|
|
(when (missing sec)
|
|
|
|
(<- sec 0))
|
|
|
|
(when (missing tz)
|
|
|
|
(<- tz "GMT"))
|
|
|
|
(r-call ISOdatetime year month day
|
|
|
|
hour min sec tz)))))
|
|
|
|
(<- as.matrix.POSIXlt (lambda (x ...)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call as.matrix (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
as.data.frame (r-call unclass x))
|
2019-08-09 10:18:36 -04:00
|
|
|
r-dotdotdot)))))
|
|
|
|
(<- mean.POSIXct (lambda (x ...)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call structure (r-call mean
|
2009-07-26 23:34:33 -04:00
|
|
|
(r-call unclass x) r-dotdotdot)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* class (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
c "POSIXt" "POSIXct"))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* tzone (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
attr x "tzone")))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- mean.POSIXlt (lambda (x ...)
|
|
|
|
(let ()
|
|
|
|
(r-block (r-call as.POSIXlt (r-call mean
|
2009-07-26 23:34:33 -04:00
|
|
|
(r-call as.POSIXct x) r-dotdotdot))))))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- difftime (lambda (time1 time2 tz units)
|
|
|
|
(let ((zz ())
|
|
|
|
(z ())
|
|
|
|
(time2 ())
|
|
|
|
(time1 ())
|
|
|
|
(units ())
|
|
|
|
(tz ()))
|
|
|
|
(r-block (when (missing tz)
|
|
|
|
(<- tz ""))
|
|
|
|
(when (missing units)
|
|
|
|
(<- units (r-call c "auto" "secs"
|
|
|
|
"mins" "hours"
|
|
|
|
"days" "weeks")))
|
|
|
|
(<- time1 (r-call as.POSIXct time1
|
|
|
|
(*named* tz tz)))
|
|
|
|
(<- time2 (r-call as.POSIXct time2
|
|
|
|
(*named* tz tz)))
|
|
|
|
(<- z (r-call - (r-call unclass
|
|
|
|
time1)
|
|
|
|
(r-call unclass time2)))
|
|
|
|
(<- units (r-call match.arg units))
|
|
|
|
(if (r-call == units "auto")
|
|
|
|
(r-block (if (r-call all (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
is.na z))
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- units "secs")
|
|
|
|
(r-block (<- zz (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
min (r-call abs z) (*named* na.rm *r-true*)))
|
|
|
|
(if (|\|\|| (r-call is.na zz) (r-call < zz 60))
|
2009-07-26 23:34:33 -04:00
|
|
|
(<- units "secs") (if (r-call < zz 3600)
|
2019-08-09 10:18:36 -04:00
|
|
|
(<- units "mins")
|
|
|
|
(if (r-call < zz 86400)
|
|
|
|
(<- units "hours")
|
|
|
|
(<- units "days"))))))))
|
|
|
|
(switch units (*named* secs (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
structure z (*named* units "secs")
|
|
|
|
(*named* class "difftime")))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* mins (r-call
|
|
|
|
structure (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
/ z 60)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named*
|
|
|
|
units "mins")
|
|
|
|
(*named*
|
|
|
|
class "difftime")))
|
|
|
|
(*named* hours (r-call
|
|
|
|
structure
|
|
|
|
(r-call /
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
z 3600)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named*
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
units "hours")
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named*
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
class "difftime")))
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named* days (r-call
|
|
|
|
structure (r-call
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
/ z 86400)
|
2019-08-09 10:18:36 -04:00
|
|
|
(*named*
|
|
|
|
units "days")
|
|
|
|
(*named*
|
|
|
|
class "difftime")))
|
|
|
|
(*named* weeks (r-call
|
|
|
|
structure
|
|
|
|
(r-call /
|
switching to scheme #t, #f, and () values
porting code to sort out which NILs are false and which are
empty lists
switching to scheme-style special forms. however you feel about
scheme names vs. CL names, using both is silly.
mostly switching to scheme predicate names, with compatibility
aliases for now. adding set-constant! to make this efficient.
adding null?, eqv?, assq, assv, assoc, memq, memv, member
adding 2-argument form of if
allowing else as final cond condition
looking for init file in same directory as executable, so flisp
can be started from anywhere
renaming T to FL_T, since exporting a 1-character symbol is
not very nice
adding opaque type boilerplate example file
adding correctness checking for the pattern-lambda benchmark
bugfix in int2str
2009-01-28 20:04:23 -05:00
|
|
|
z (r-call * 7 86400))
|
|