2017-05-06 5 views
0

Der Fehler istNetlogo Verfahren - Rückkehr Funktion

Es gibt bereits ein Verfahren namens FORAGING_EFFORT

Gibt es eine andere Rückkehrfunktion in Netlogo oder jede andere Lösung?

to-report fp [foraging_effort] 
     report (5/(1 + exp (2 - foraging_effort * 2))) 
    end 

to-report foraging_effort [forage_min forage_rate energy_level] 
    ifelse energy_level <= forage_min 
    [ report 0 ] 
    [ report (forage_rate * (energy_level - forage_min)) ] 
end 

Vielen Dank im Voraus.

Antwort

1

Alles in NetLogo teilt einen einzigen Namespace. Das bedeutet, dass eine Variable nicht den gleichen Namen wie eine Prozedur haben kann und umgekehrt.

In Ihrem Fall hat der fp Reporter ein Argument namens foraging_effort, aber Sie haben auch einen Reporter namens foraging_effort. Darüber beschwert sich NetLogo.

Normalerweise würde ich sagen: "Benennen Sie einfach einen der beiden um, und Sie sollten gut gehen", aber die Art, wie Sie Ihre Frage formulierten, lässt mich vermuten, dass noch etwas anderes vor sich geht. Ist es möglich, dass Sie den foraging_effort Reporter aus Ihrer fp Reporterin anrufen wollten? In diesem Fall brauchen Sie das Argument für den Reporter wahrscheinlich nicht, und Sie sollten den [foraging_effort] Teil nach to-report fp entfernen.