From e314e0c6ceaa083adcb0e394f18f12c9afd4fa25 Mon Sep 17 00:00:00 2001 From: Wukix Date: Thu, 4 Dec 2014 07:43:56 -0800 Subject: [PATCH] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c6b310b..f13e6e5 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ LambdaLite ========== -A functional relational database in about 250 lines of Common Lisp +A functional, relational database in about 250 lines of Common Lisp -SQL. NoSQL. ORMs. Key-value stores. There are a variety of approaches available for dealing with data. LambdaLite might be called "functional relational", for lack of a better term. The "relational" part is straightfoward: data is organized into tables. The "functional" part comes from a break with traditional SQL-style query languages: Lisp function closures are used to express queries over in-memory, in-process Lisp data. +SQL. NoSQL. ORMs. Key-value stores. There are a variety of approaches available for dealing with data. LambdaLite might be called functional and relational, for lack of better terms. The "relational" part is straightfoward: data is organized into tables. The "functional" part comes from a break with traditional SQL-style query languages: Lisp function closures are used to express queries over in-memory, in-process Lisp data. ## Lisp Plug People often ask "why Lisp?" It's hard to sum up all the benefits of Lisp in a few words. However, what LambdaLite does would be impossible in most languages. LambdaLite's `where` clauses are macros that seek out '/'-prefixed keywords and replace them with row attribute references. The resulting expression becomes a function closure that is compiled by most Lisp implementations into native code. Is that cool or what?