Xah Talk Show 2025-11-12 Ep712 Emacs Lisp, Move File to Parent Dir. car cdr cons, Functional Programing sans Variable

xah talk show ep712 qkRyk
xah talk show ep712 qkRyk

Video Summary (Generated by AI, Edited by Human.)

In this video, Xah Lee codes in Emacs Lisp to create a command that moves files or marked files to their parent directory (0:08).

Here's a breakdown of the video's content:

(defun xah-move-to-parent-dir ()
  "move current file or marked file up one dir.
Created: 2025-11-12
Version: 2025-11-12"
  (interactive)
  (let ((xfiles (dired-get-marked-files))
        xcur-dir
        xparent-dir)
    (setq xcur-dir (file-name-directory (car xfiles)))
    (setq xparent-dir (file-name-parent-directory xcur-dir))
    (mapc
     (lambda (x)
       (rename-file x (concat xparent-dir (file-name-nondirectory x))))
     xfiles)))

;; s------------------------------

(defun xah-move-to-parent-dir ()
  "move current file or marked file up one dir.
Created: 2025-11-12
Version: 2025-11-12"
  (interactive)
  (let* ((xfiles (dired-get-marked-files))
         (xcur-dir (file-name-directory (car xfiles)))
         (xparent-dir (file-name-parent-directory xcur-dir)))
    (mapc
     (lambda (x)
       (rename-file x (concat xparent-dir (file-name-nondirectory x))))
     xfiles)))

;; s------------------------------

(defun xah-move-to-parent-dir ()
  "move current file or marked file up one dir.
Created: 2025-11-12
Version: 2025-11-12"
  (interactive)
  (let ((xfiles (dired-get-marked-files)))
    (mapc
     (lambda (x)
       (rename-file
        x
        (concat
         (file-name-parent-directory (file-name-directory (car xfiles)))
         (file-name-nondirectory x))))
     xfiles)))

;; s------------------------------

(defun xah-move-to-parent-dir ()
  "move current file or marked file up one dir.
Created: 2025-11-12
Version: 2025-11-12"
  (interactive)
  (mapc
   (lambda (x)
     (rename-file
      x
      (concat
       (file-name-parent-directory (file-name-directory (car (dired-get-marked-files))))
       (file-name-nondirectory x))))
   (dired-get-marked-files)))

;; s------------------------------

(defun xah-move-to-parent-dir ()
  "move current file or marked file up one dir.
Created: 2025-11-12
Version: 2025-11-12"
  (interactive)
  (funcall
   (lambda (yy)
     (mapc
      (lambda (x)
        (rename-file
         x
         (concat
          (file-name-parent-directory (file-name-directory (car yy)))
          (file-name-nondirectory x))))
      yy))
   (dired-get-marked-files)))
(list 1 2 3)
(cons 1 (cons 2 (cons 3 nil)))

(cons 1 2)

(car (cons 1 2))
;; 1

(cdr (cons 1 2))
;; 2

(car (list 1 2 3))
;; 1

(cdr (list 1 2 3))
;; (2 3)

;; s------------------------------

(list 1 2 3)
(cons 1 (cons 2 (cons 3 nil)))

(car (cdr (list 1 2 3)))
;; 2

(cadr (list 1 2 3))
;; 2

(nth 1 (list 1 2 3))
;; 2

;; s------------------------------

(number-sequence 0 200)
;; (0 1 2 3 4 5 6 7 8 9 10 11 ...)

(length (number-sequence 0 200))
;; 201

(< (length mylist) 200)

(length< mylist 200)