The following code is taken from Emacs wiki
(eval-when-compile (require 'cl))
(set-frame-parameter nil 'alpha '(100 100))
(defun toggle-transparency (unused)
(interactive "P")
(if (/=
(cadr (frame-parameter nil 'alpha))
100)
(set-frame-parameter nil 'alpha '(100 100))
(set-frame-parameter nil 'alpha '(85 50))))
(global-set-key (kbd "C-c t") 'toggle-transparency)
EDIT: answering to your question. If you don't initialize a frame parameter alpha
it will be nill. So, if you don't want to have the code:
(set-frame-parameter nil 'alpha '(100 100))
you can check it in the function toggle-transparency
(defun toggle-transparency (unused)
(interactive "P")
(let ((curr-alpha (frame-parameter nil 'alpha)))
(if (or (null curr-alpha) (/= (cadr curr-alpha) 100))
(set-frame-parameter nil 'alpha '(100 100))
(set-frame-parameter nil 'alpha '(50 50)))))