all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Possible to conditionally bind variable?
@ 2014-09-11 11:11 Tory S. Anderson
  2014-09-11 12:24 ` Nicolas Richard
  0 siblings, 1 reply; 8+ messages in thread
From: Tory S. Anderson @ 2014-09-11 11:11 UTC (permalink / raw
  To: emacs list

I have several redundancies in the following code: 

(defun go-or-make-agenda (&optional new-frame)
  (interactive "P")
  (let ((buffer "\*Org Agenda\*"))
    (if (get-buffer buffer)
	(if new-frame
	    (switch-to-buffer-other-frame buffer)
	  (switch-to-buffer buffer))
      (if new-frame
	  (switch-to-buffer-other-frame org-agenda-list)
	(org-agenda-list)))))

I'd like to do something like the following, to chop out much of the switch-to-[other-]-buffer cruft:

(defun go-or-make-agenda (&optional new-frame)
  (interactive "P")
  (let ((buffer "\*Org Agenda\*")
	(some-other-buffer "*scratch*")
	(my-switch-function (if new-frame ;; is there some way to do this?
				'(switch-to-other-buffer)
				'(switch-to-buffer)))
    (if (get-buffer buffer)
	(my-switch-function buffer)
	(my-switch-function some-other-buffer))))) 


 I'm not sure this is possible (short of the rather daunting http://stackoverflow.com/questions/25115876/conditional-variable-binding-in-common-lisp), but I have trust that in the awesomeness of Lisp it just might be.

- Tory 



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-09-12  3:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-11 11:11 Possible to conditionally bind variable? Tory S. Anderson
2014-09-11 12:24 ` Nicolas Richard
2014-09-11 12:34   ` Stefan Monnier
2014-09-11 12:43   ` Tory S. Anderson
2014-09-11 13:54     ` Nicolas Richard
     [not found]     ` <mailman.8690.1410443522.1147.help-gnu-emacs@gnu.org>
2014-09-12  2:56       ` Rusi
     [not found]   ` <mailman.8684.1410438907.1147.help-gnu-emacs@gnu.org>
2014-09-12  3:55     ` Rusi
2014-09-12  3:59       ` Rusi

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.