diff options
Diffstat (limited to 'users/wpcarro/lisp/f/main.lisp')
-rw-r--r-- | users/wpcarro/lisp/f/main.lisp | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/users/wpcarro/lisp/f/main.lisp b/users/wpcarro/lisp/f/main.lisp deleted file mode 100644 index a51c38127815..000000000000 --- a/users/wpcarro/lisp/f/main.lisp +++ /dev/null @@ -1,48 +0,0 @@ -(in-package #:cl-user) -(defpackage #:main - (:documentation "Modern API for working with files and directories.") - (:use #:cl) - (:shadow #:type)) -(in-package #:main) - -;; Common Lisp distinguishes between `namestrings` and `pathnames` as two types -;; of filename representations. -;; -;; A `pathname` is a structured representation of the name of a file, which -;; consists of six parts: -;; 1. host -;; 2. device -;; 3. directory -;; 4. name -;; 5. type -;; 6. version - -;; TODO: Should I be using `string` as a type or `namestring`? - -(defmacro type (name in out) - `(declaim (ftype (function ,in ,out) ,name))) - -(type join (&rest namestring) pathname) -(defun join (&rest args) - "Join ARGS to a single path." - (apply #'merge-pathnames args)) - -(type ext (pathname) string) -(defun ext (path) - "Return the file extension of PATH." - (pathname-type path)) - -;; TODO: Define these tests elsewhere. - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Tests -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -;; join -(string= (join "path") "path") -(string= (join "path" "to") "path/to") -(string= (join "/" "path" "to" "heaven") "/path/to/heaven") - -;; ext -(string= (ext #p"path/to/file.ext") "ext") -(string= (ext #p"path/to/directory") nil) |