about summary refs log tree commit diff
path: root/users/wpcarro/lisp/f/main.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'users/wpcarro/lisp/f/main.lisp')
-rw-r--r--users/wpcarro/lisp/f/main.lisp48
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)