From 56664fe6765ea459bfb371da588e43e7257a17f4 Mon Sep 17 00:00:00 2001 From: Brady McDonough Date: Wed, 22 Mar 2023 20:17:24 +0000 Subject: [PATCH] Added a README --- README.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6b4444a --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +#Guile Schemeing +The purpose of this repository is to hold various small utilities I commonly +use in Scheme. Running `make; make install` in the tk direcory will install +sources to the Guile `(%site-dir)` and compiled .go files to the Guile +`(%site-ccache-dir)`. All modules are installed under the prefix `tk/` + +## short.scm +Aliases to shorten common names. +`(string->symbol)` => `(ss>)` +`(symbol->string)` => `(ss<)` +`(ssa>)` appends strings into a symbol + +## listlogic.scm +Various logical tools. +`(display-if-not)` Displays a given string if the first argument is `#f` +`(flatten)` De-nests lists into a form where no `(car)` contains a list +`(lp&)` Tests some predicate pairwise over two lists +`(l&)` Tests the equality according to `eq?` over two lists, returns as a list +all passing elements +`(if-some)` The common `(if var var)` pattern +`(if-some-else)` The common `(if var var default)` pattern + +## mcron.scm +Constants and functions for working with time, schedules and mcron +`sec/min` `sec/hour` `sec/day` `sec/week` Useful constants +`sec/mins` `sec/hours` `sec/days` `sec/weeks` Readable shortcuts, `(sec/mins 4)` +rather than `(* 4 60)` or worse `240` +`(step-from)` Normalize a time to be the next step sized increment from a base time +`(str->secs)` +`(strf->secs)` +`(current-date-string)` +`(yesterday-date-string)` + +## ports.scm +Convenience when working with ports +`(port-rewind!)`