我相信这肯定是一个简单的问题,但是我没有发现is-agent?
和is-turtle?
原语之间的区别,以及何时应该使用一个原语而不是另一个。
答案 0 :(得分:3)
乌龟,补丁和链接都是代理。因此is-agent?
将为其中任何一个返回true
。但是补丁和链接显然不是乌龟,因此is-turtle?
会返回false
。
breed [ ghouls ghoul ]
to test
clear-all
create-turtles 1
create-ghouls 1
ask turtle 0 [ create-link-to turtle 1 ]
show is-agent? turtle 0 ; true
show is-agent? ghoul 1 ; true
show is-agent? patch 0 0 ; true
show is-agent? link 0 1 ; true
show is-turtle? turtle 0 ; true
show is-turtle? ghoul 1 ; true
show is-turtle? patch 0 0 ; false
show is-turtle? link 0 1 ; false
show is-ghoul? turtle 0 ; false
show is-ghoul? turtle 1 ; true
end
因此,如果您试图将代理与数字,字符串和正确/错误值之类的东西区分开,则可以使用is-agent?
。当您确实确定要与乌龟打交道时,请使用is-turtle?
。