From e136c4d695fbe2bceb0101adc350497a85196fb1 Mon Sep 17 00:00:00 2001 From: Olof-Joachim Frahm Date: Fri, 14 Mar 2014 15:48:14 +0100 Subject: [PATCH] Add basic TYPE-OF. --- jscl.lisp | 1 + src/types.lisp | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 src/types.lisp diff --git a/jscl.lisp b/jscl.lisp index 19c5c54..5826214 100644 --- a/jscl.lisp +++ b/jscl.lisp @@ -59,6 +59,7 @@ ("ffi" :target) ("symbol" :target) ("package" :target) + ("types" :target) ("read" :both) ("defstruct" :both) ("lambda-list" :both) diff --git a/src/types.lisp b/src/types.lisp new file mode 100644 index 0000000..81de856 --- /dev/null +++ b/src/types.lisp @@ -0,0 +1,27 @@ +;;; types.lisp --- Type information and calculations + +;; Copyright (C) 2014 Olof-Joachim Frahm + +;; JSCL is free software: you can redistribute it and/or +;; modify it under the terms of the GNU General Public License as +;; published by the Free Software Foundation, either version 3 of the +;; License, or (at your option) any later version. +;; +;; JSCL is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; +;; You should have received a copy of the GNU General Public License +;; along with JSCL. If not, see . + +(/debug "loading types.lisp!") + +;;;; Type information + +(defun type-of (object) + (etypecase object + (null 'null) + (symbol 'symbol) + (cons 'cons) + (string 'string))) -- 1.7.10.4