LISP - Property Lists

property list - global value separate from the variable value

getting a value

	(get 'name 'prop-name)
will return a value for "name"'s property of "prop-name". If a value has not been set, the value is nil. You set a value by using setf. The arguments for setf are a command to get a value and new value. setf is smart function, it looks at the and sets a value so that the command argument can get the same value. So
	(setf (get 'name 'prop-name) 'some-value)
will set "name"'s property of "prop-name" to a value of "some-value". To see how this works, follow this next example. Assume no variables have values set before the example.
	(setq a 'xyz)
	XYZ			; showing returned values in capital letters
	(get 'a 'my-type)
	NIL
	(setf (get 'a 'my-type) 'truck)
	TRUCK
	a
	XYZ
	(get 'a 'my-type)
	TRUCK

	(setf (get 'a 'some-other-prop) 'rst)
	RST

	a
	XYZ
	(get 'a 'my-type)
	TRUCK
	(get 'a 'some-other-prop)
	RST
	(get 'b 'my-type)
	NIL