# Y

`(yield 'any ['sym]) -> any`
  (64-bit version only) Transfers control from the current coroutine back to the caller (when the `sym` tag is not given), or to some other coroutine (specified by `sym`) to continue execution at the point where that coroutine had called `yield` before. In the first case, the value `any` will be returned from the corresponding `co` call, in the second case it will be the return value of that `yield` call. See also `stack`, `catch` and `throw`.

      : (co "rt1"                            # Start first routine
         (msg (yield 1) " in rt1 from rt2")  # Return '1', wait for value from "rt2"
         7 )                                 # Then return '7'
      -> 1

      : (co "rt2"                            # Start second routine
         (yield 2 "rt1") )                   # Send '2' to "rt1"
      2 in rt1 from rt2
      -> 7

`(yoke 'any ..) -> any`
  Inserts one or several new elements `any` in front of the list in the current `make` environment. `yoke` returns the last inserted argument. See also `link`, `chain` and `made`.

      : (make (link 2 3) (yoke 1) (link 4))
      -> (1 2 3 4)