diff options
Diffstat (limited to 'users/wpcarro/lisp')
-rw-r--r-- | users/wpcarro/lisp/f/README.md | 5 | ||||
-rw-r--r-- | users/wpcarro/lisp/f/default.nix | 11 | ||||
-rw-r--r-- | users/wpcarro/lisp/f/main.lisp | 48 |
3 files changed, 0 insertions, 64 deletions
diff --git a/users/wpcarro/lisp/f/README.md b/users/wpcarro/lisp/f/README.md deleted file mode 100644 index 34e07180d492..000000000000 --- a/users/wpcarro/lisp/f/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# f.lisp - -In this project, I'm attempting to port the Elisp library [`f.el`][1] to Common Lisp. - -[1]: https://github.com/rejeep/f.el diff --git a/users/wpcarro/lisp/f/default.nix b/users/wpcarro/lisp/f/default.nix deleted file mode 100644 index a71c8f887a41..000000000000 --- a/users/wpcarro/lisp/f/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ depot, ... }: - -depot.nix.buildLisp.library { - name = "f"; - deps = with depot.users.wpcarro.lisp; [ - prelude - ]; - srcs = [ - ./main.lisp - ]; -} 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) |