對不起,如果標題有點奇怪,但我真的不知道如何說出它。無論如何,我的項目是一個對象製造商,現在我只是格式化一切,所以它與eval一起工作,我無法將此語句(cond ((equal? message 'getx) xval)...)
轉換爲我的對象代碼生成器,其中消息是傳入的命令,而xval只是一個實例變量。顯然是平等的?和消息很容易,只是使用'equal?
和'message
爲了不被評估,但我怎麼得到撇號顯示?如何獲得'留在計劃中
我在拍博士使用漂亮的大,如果有差別
澄清: 如果我運行(eval (list 'equal? 'message 'getx
)...),將運行爲(equal? message getx)...
,而是我希望它是(equal? message 'getx)
我想它將消息與符號'getx
而不是參考getx
進行比較。
你能嘗試澄清你的問題一點?我可以猜到你的問題,但希望你可以進一步解釋。嘗試產生一個最小的測試用例(代碼),顯示你沒有想到的行爲。 –
對於每一個'''你都沒有評價它的論點。 ''x'只是''(quote x)'的糖。例如'(list'quote'data)'將顯示爲'data'或'(quote data)'。這兩種可能的情況都是相同的。 – Sylwester