about summary refs log blame commit diff
path: root/users/wpcarro/emacs/pkgs/symbol/symbol.el
blob: 4b16351831c9918edeaecc200461e3427501c5c8 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                                                             
 
                                              
                 
                                   





                                    
                                                                                
          
                                                                                
 


                                
 


                                  
 

                                                           
                                        




                                                                                
 
                           




                              
;;; symbol.el --- Library for working with symbols -*- lexical-binding: t -*-

;; Author: William Carroll <wpcarro@gmail.com>
;; Version: 0.0.1
;; Package-Requires: ((emacs "24"))

;;; Commentary:
;; Library for working with symbols.

;;; Code:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Library
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun symbol-to-string (symbol)
  "Map `SYMBOL' into a string."
  (symbol-name symbol))

(defun symbol-from-string (string)
  "Map `STRING' into a symbol."
  (intern string))

(defun symbol-as-string (f x)
  "Treat the symbol, X, as a string while applying F to it.
Coerce back to a symbol on the way out."
  (symbol-from-string (funcall f (symbol-to-string x))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Predicates
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun symbol-instance? (x)
  "Return t if X is a symbol."
  (symbolp x))

(provide 'symbol)
;;; symbol.el ends here