From 7ced4e44ddb6e15152eb8bcef9dda68aba53710b Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sat, 3 Jul 2021 16:28:15 -0700 Subject: [PATCH] alists --- shell/data.limg | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/shell/data.limg b/shell/data.limg index 0c46da98..fcc7a1ba 100644 --- a/shell/data.limg +++ b/shell/data.limg @@ -101,6 +101,19 @@ if (f (car xs)) (cons (car xs) rest) rest]) + (alist? . [def (alist? x) + (and (cons? x) + (cons? (car x)))]) + (assoc . [def (assoc alist key) + if (no alist) + () + if (key = (caar alist)) + (car alist) + (assoc (cdr alist) key)]) + (get . [def (get alist key) + aif (assoc alist key) + (cdr it) + ()]) (++ . [mac (++ var) `(set ,var (,var + 1))]) (+= . [mac (var += inc) `(set ,var (,var + ,inc))])