Mae向きなブログ

Mae向きな日記のブログ版。ようやくこちらに移行してきました。

悟り体験のために…

Programming in Emacs Lisp*1で,Emacs Lispを勉強中です。

6章まで読んだので,以下の練習問題を解いてみました。

(defun q55 (&optional arg)
  (interactive "P")
  (let (num)
    (if arg
	(setq num (prefix-numeric-value arg))
      (setq num 56))
    (if (> fill-column num)
	(message "Fill-column is greater than arg.")
      (message "Arg is greater than fill-column"))))

問題の中で,

「save-restriction、widen、goto-char、 point-min、buffer-substring、message及び他の関数をうまく組み合わせて使う必要がある。

とあるのですが,goto-charの使いどころが分かっていません…。

(defun q63 ()
  (interactive)
  (let (head)
    (save-restriction
      (widen)
      (save-excursion
	(setq head (buffer-substring (point-min) 60))
	(message "%s" head)))))

識者の皆さん,アドバイスをお願いします。