The JustBot I was copying in fact simulates against FairBot, not CooperateBot. You’re right that I did have two typos—but those were in missing quotes. I’ve now fixed it.
Also, your quotation of cooperate-bot is incorrect, because quote as a special form simply says to look at the next expression and treat it as literal data, so if an expression has already been loaded and evaluated (to give you your function cooperate-bot), you can’t get its code by just putting a quote before the symbol referring to that function. That would take some kind of environment inspection.
;; Play the opponent against a copy of 𝐂𝐨𝐨𝐩𝐞𝐫𝐚𝐭𝐞𝐁𝐨𝐭'𝐬 𝐜𝐨𝐝𝐞, not JustBot's code:
'(λ (my-code opponent-code)
(prove `(,opponent-code ',opponent-code ',my-code)))
The source of my confusion is:
You say “CooperateBot’s code” but insert Fairbot’s code.
The JustBot I was copying in fact simulates against FairBot, not CooperateBot. You’re right that I did have two typos—but those were in missing quotes. I’ve now fixed it.
Also, your quotation of
cooperate-botis incorrect, because quote as a special form simply says to look at the next expression and treat it as literal data, so if an expression has already been loaded and evaluated (to give you your functioncooperate-bot), you can’t get its code by just putting a quote before the symbol referring to that function. That would take some kind of environment inspection.Can you please fix your comment?
The source of my confusion is:
You say “CooperateBot’s code” but insert Fairbot’s code.
What is “just” about cooperating with FairBot?
Done! I’m not going to argue about whether it’s more just to test against FairBot or CooperateBot. I’m just copying the standard JustBot.