From 624a9112cb09c647d40a58c9c4f4c6362a9897de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Pant=C5=AF=C4=8Dek?= Date: Fri, 10 Mar 2023 21:28:51 +0100 Subject: [PATCH] Initial import of partial dictionary implementation. --- brmsaptool.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 brmsaptool.scm diff --git a/brmsaptool.scm b/brmsaptool.scm new file mode 100644 index 0000000..b4aba94 --- /dev/null +++ b/brmsaptool.scm @@ -0,0 +1,64 @@ +;; +;; brmsaptool.scm +;; +;; ISC License +;; +;; Copyright 2023 Brmlab, z.s. +;; Dominik Pantůček +;; +;; Permission to use, copy, modify, and/or distribute this software +;; for any purpose with or without fee is hereby granted, provided +;; that the above copyright notice and this permission notice appear +;; in all copies. +;; +;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +;; +(import (chicken process-context) + (chicken file) + (chicken file posix)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Testing + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dictionary + +(define (make-dict) + '()) + +(define (dict-has-key? d k) + (if (assq k d) #t #f)) + +(define (dict-ref d k . r) + (let ((p (assq d k)) + (d (if (null? r) #f (car r)))) + (if p + (cdr p) + d))) + +(define (dict-tests!) + (display "[test] dict ") + (newline)) + +(define *members-directory* "members") + +(define (displayln . x) + (apply display x) + (newline)) + +(define (load-members) + (directory *members-directory*)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(dict-tests!) + +(displayln (load-members))