https://www.gnu.org/software/emacs/manual/html_node/elisp/Time-of-Day.html#Time-of-Day seems to have a formula. The list of two ints you get is interpreted as x * 2^16 + y:
ELISP> (decode-time (+ 13184 (* (expt 2 16) 481))) (0 0 1 1 1 1971 5 nil 3600)
I grabbed Picolisp binaries for Windows somewhere years ago, you presumably could too. (Assuming you're on Windows.)
As for a Linux environment, apart from double boot you can use Virtualbox or the Linux subsystem for Windows (I blathered about that somewhere here but can't find it again).
I'm not familiar with CL, so can't say much about this Rosetta code. I presume it switches to complex numbers when given something like (sqrt -1), but the loss of precision problem doesn't seem addressed in that snippet.
Re. your stats problems I had an idea: why not use the full power of Mathematica and its inbuilt stats functions? The kernel is free "for developers", you'll just have to register from here if that's still available. You won't get the notebook interface, but a console application with a REPL you then can call from some editor/IDE, with scripts, the Jupyter notebooks, &c.
My opinion (which will get me downvoted again, I'm sure) is that Mathematica is a Lisp, albeit with a very awkward syntax. ;-)
i believe emacs 26 uses dynamic scope by default. it's also outdated; you should use emacs 27, which uses lexical scope by default. failing that, just set lexical-binding
to t
. see the elisp manual on lexical binding.
but closures aren't really important to what i'm saying. what matters is, if you want to repeatedly evaluate parameterized code in an environment which you manipulate between invocations, do not use eval
! use lambda
and funcall
. also, do not use setq
to introduce variable bindings; introduce bindings with defvar
or let
, and use setf
to mutate them.
instead of having the part of your code that does a slow computation construct and return a backquote form, have it construct and return a function. this will require you to think ahead of time about what kinds of templates you will be building so that you can construct functions for any/all of them (without calling eval
on lists whose head is lambda
. you should not ever call eval
in user code). requiring that thought is not a bad thing.
Hey buddy great Post,
I found something helpful which I want to share as I was browsing the web for learning some coding algorithms it was very difficult to visit different sites at a time but I found a site named https://hackr.io/
I went here and found that the stuff from best programming sites were all allocated at a single place so I just thought of sharing with you all....
I hope it will help you This might be useful to your readers: https://hackr.io/tutorials/learn-lisp