| Although NetLogo can be considered a Logo, there are some important differences, such as: - focus on agent-based modelling (feels more like a DSL to me) - lexical scoping of local variables and inputs instead of dynamic scoping - no “word” data type (similar to symbols in Lisp) - instead, NetLogo uses strings in most cases where words would be used in Logo - control structures (if, while, etc.) are special forms instead of ordinary functions - NetLogo is a Lisp 1, while Logo has been a Lisp 2 (separate namespaces for values and functions) See http://ccl.northwestern.edu/netlogo/docs/programming.html#co... for a more detailed comparison. Despite its educational focus and reputation as a language for children, UCBLogo (a dialect of Logo from 1992 intended for being a “minimum Logo standard”) seems to be quite advanced and also has some “adult” features (partially derived from its Lisp heritage), such as higher-order functions, eval & apply, recursion, anonymous functions (or rather something similar called “templates”) and macros. However, NetLogo feels more like a modern version of Logo without some of the weird/unfamiliar stuff (like dynamic scoping and words). It is heavily used and taught at https://www.complexityexplorer.org , so if anyone is curious enough I recommend taking a look at their free courses/tutorials such as “Fundamentals of NetLogo” or “Introduction to Agent-Based Modeling” - they are probably the best resources out there to learn NetLogo. |