anchor.diff:  ==>vadas
   ==>josh
   
  +<1> Set the variable `marko` to the the vertex in the graph `g` named "marko".
  +<2> Get the vertices that are outgoing adjacent to the marko-vertex via knows-edges.
  +<3> Get the names of the marko-vertex's friends.
  +
   .The Name of The People That Marko Knows
   image::tinkerpop-classic-ex1.png[width=500]
   
  -Again, all steps extend either map, flatMap, or filter. Thus, the traversal above can be written in its generic form below. In the next section, the `it.get()` will be explained as this is an important feature of TinkerPop3 that is not available in previous versions of TinkerPop. 
  -
  -IMPORTANT: The steps map, flatMap, and filter take a link:http://en.wikipedia.org/wiki/Anonymous_function[lambda function] (i.e. an anonymous function or closure). For map, the function must return an object. For flatMap, the function must return an iterator of objects. For filter, the function is a predicate that returns either true or false. The lambdas introduced by Java8 are supported in TinkerPop3.
  -
  -[source,groovy]
  -gremlin> marko.
  +It is possible to represent any `map()`, `filter()`, or `sideEffect()` step using `flatMap()`. Map can return an iterator with a single object in it. Filter can return an iterator with a single object in it or no object at all. Side-effect can return an iterator containing the incoming object, but also update some other area of memory. Thus, ignoring `branch()`, `flatMap()` is the most general construct -- "turn the incoming object into an iterator of objects."
  +
  +[source,groovy]
  +gremlin> g.V().
     filter{it.get().value('name') == 'marko'}.
     flatMap{it.get().out('knows')}.
     map{it.get().value('name')}
  
positive.code: Finally, as a strictly academic exercise, the traversal can be written completely using flatMap.
  
  [source,groovy]
  gremlin> marko.
    flatMap{it.get().value('name') == 'marko' ? [it.get()].iterator() : [].iterator()}.
    flatMap{it.get().out('knows')}.
    flatMap{[it.get().value('name')].iterator()}
  
negative.code: ==>ripple
  ==>lop
  
  NOTE: In TinkerPop2, the `repeat()`-step was called `loop()`. Repeat has been generalized to support both do-while and while-do semantics which is explained in <<repeat-step,Repeat Step>>.
  
  CAUTION: A Traversal's result are never ordered unless explicitly by means of <<order-step,`order()`>>. Thus, never rely on the iteration order between TinkerPop3 releases and even within a release (as compiler optimizations may alter the flow).
  
  On Gremlin Language Variants
  ----------------------------
  