Carp/core/Filepath.carp

18 lines
420 B
Plaintext

(defmodule Filepath
(use Array)
(private append-slash)
(hidden append-slash)
(defn append-slash [s]
(str* s "/"))
(doc dir-from-path "Removes the file-name part of a path to a file.")
(defn dir-from-path [path]
(let [segments (split-by path &[\/])
n (dec (length &segments))
without-last (prefix-array &segments n)]
(concat &(copy-map append-slash &without-last))))
)