Recently Written · git

common-lisp-utils

My utilities for Common Lisp programming.

git clone https://github.com/equwal/common-lisp-utils

Log | Files | Refs


commit 2b09e2fe9f7e2b1b72b4b570d4ab65d66d2dab39
Spenser Truex <spensertruexonline@gmail.com>
2018-03-31 23:43:13 -0300

IO utils.

 utils.lisp | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
diff --git a/utils.lisp b/utils.lisp
new file mode 100644
index 0000000..d72b0ab
--- /dev/null
+++ b/utils.lisp
@@ -0,0 +1,28 @@
+;; Export read-token read-int
+(defun numberp-char (char)
+  (or (char= #\0 char)
+      (char= #\1 char)
+      (char= #\2 char)
+      (char= #\3 char)
+      (char= #\4 char)
+      (char= #\5 char)
+      (char= #\6 char)
+      (char= #\7 char)
+      (char= #\8 char)
+      (char= #\9 char)))
+(defun whitespacep-char (char)
+  (or (char= #\Newline char) (char= #\Space char) (char= #\Tab char)))
+(defun read-token (&optional (built-string ""))
+  (let ((char (read-char)))
+    (if (whitespacep-char char)
+	built-string
+	(read-token (concatenate 'string
+				 built-string
+				 (make-string 1 :initial-element char))))))
+(defun read-int (&optional (built-string ""))
+  (let ((char (read-char)))
+    (if (numberp-char char)
+	(read-int (concatenate 'string
+			       built-string
+			       (make-string 1 :initial-element char)))
+	(read-from-string built-string))))