Add basic TYPE-OF.
authorOlof-Joachim Frahm <olof@macrolet.net>
Fri, 14 Mar 2014 14:48:14 +0000 (15:48 +0100)
committerOlof-Joachim Frahm <olof@macrolet.net>
Fri, 14 Mar 2014 14:48:14 +0000 (15:48 +0100)
jscl.lisp
src/types.lisp [new file with mode: 0644]

index 19c5c54..5826214 100644 (file)
--- 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 (file)
index 0000000..81de856
--- /dev/null
@@ -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 <http://www.gnu.org/licenses/>.
+
+(/debug "loading types.lisp!")
+
+;;;; Type information
+
+(defun type-of (object)
+  (etypecase object
+    (null 'null)
+    (symbol 'symbol)
+    (cons 'cons)
+    (string 'string)))