I want to do something like:
(car '(. a))
and get
.
as a result.
For example, if you type
'.
into the console you will get the output that I want. The problem is that I don't want to have an apostrophe infront of all of the . in a list.
Any guidance?
In Scheme's read syntax, a standalone dot is special. '.
won't get you a dot symbol; it's invalid syntax. (If it works in your implementation, then that's just a special quirk of your implementation.)
Instead, you have to escape it. In most Scheme implementations, you can either use '|.|
or '\.
.
(car '(\. a)) ; returns the same thing as (string->symbol ".")
(car '(|.| a)) ; likewise
EDIT: This appears to only work in MIT/GNU Scheme.
'
creates symbol and list literals. If you want .
as a symbol, it's '.
.
If a
is a symbol literal, you can use
(car '(. a))
or
(car (list '. 'a))
If a
is a variable, try
(car `(. ,a))
or
(car (list '. a))