ClojureDocs

Nav

Namespaces

alt!

  • (alt! & clauses)
Makes a single choice between one of several channel operations,
as if by alts!, returning the value of the result expr corresponding
to the operation completed. Must be called inside a (go ...) block.
 Each clause takes the form of:
 channel-op[s] result-expr
 where channel-ops is one of:
 take-port - a single port to take
[take-port | [put-port put-val] ...] - a vector of ports as per alts!
:default | :priority - an option for alts!
 and result-expr is either a list beginning with a vector, whereupon that
vector will be treated as a binding for the [val port] return of the
operation, else any other expression.
 (alt!
  [c t] ([val ch] (foo ch val))
  x ([v] v)
  [[out val]] :wrote
  :default 42)
 Each option may appear at most once. The choice and parking
characteristics are those of alts!.