On Dec 7, 2012 5:51 AM, "Richard Shann" <richard.shann@virgin.net> wrote:
> If I pass 'a in as a parameter I get something back which prints on the
> console as (quote a) but which is not eq? to 'a
You seem to be double quoting the value. No need for ' the second time.
> I can pass in a string and get an equal? string back. But what I really
> want to do is pass in a procedure and execute it if I get it back, thus
>
> (set! choice (d-PopupMenu (list '("Offset Position" . do-offset))))
Here you pass the symbol "do-offset" rather than the value. read up on quote and quasiquote syntax. Use unquote to insert the /value/ of do-offset:
(set! choice (d-PopupMenu (list `("Offset Position" . ,do-offset))))
or:
(set! choice (d-PopupMenu (list (cons "Offset Position" do-offset))))
> (#f Wrong type to apply: ~S (do-offset) #f)
>
You are trying to apply a list contain a symbol, when it should just be a procedure: no list or symbol.