So you have used Maple as a glorified calculator (Maple 101), then wrote a few 1 liners (Maple 201), and even a few larger procedures (Maple 301), where you were both amazed and horrified by 'op'. But when you get serious about programming in Maple, even for not-so-large procedures, what are the fundamental parts of the system that you should know? Other pages in this book talk about particular features. This one is instead a simple list of those Maple commands and concepts you need to know to be able to call yourself a Master Maple Programmer.

Concepts you need to understand:

  • structured types (see ?type,structured)
  • DAGs versus trees
  • hash tables
  • expression sequences (and why they are both useful and dangerous)
  • rtables and indexing functions
  • evaluation rules (one level, last-name-eval, special rules)
  • higher-order functions
  • lexical scoping
  • environment variables (known as fluid variables in LISP)
  • argument processing
  • attributes
  • why you should never use 'whattype'
  • why you should be wary of 'with'
  • why 'has' and 'hastype' can kill efficiency
  • options Cache, remember, system, builtin, inline, etc
  • what all the quotes mean
  • the difference between evaluation and automatic simplification

Commands you need to know:

  • indets
  • map, zip and seq
  • member, select, remove, selectremove
  • `if`
  • unapply
  • the 'in' operator
  • 2-argument eval
  • procname, args, nargs, and their friends
  • frontend, freeze, thaw
  • maptype
  • depends
  • use, uses and bind
  • kernelopts and interface
  • typematch
  • subsop
  • unames, anames
  • LibraryTools, march
  • $define, $include, $ifdef and other pre-processor macros
  • system, ssystem, process
  • evalindets and subsindets
  • ToInert and FromInert
  • call_external
  • dismantle, disassemble, pointto, addressof

Please Wait...