# `select`

> Look up select, the Arc built-in function that sends each boolean value to a true or a false routing entry.

`select` is a built-in function, so it needs no `import`.

## `select`

Sends each input value to its `true` output or its `false` output.

* Input -> a `bool` value from `->`. Another type, such as `u8`, is an error. A `=>` into `select` gives the error `'=>' cannot feed select{}, use '->'`.
* Outputs -> `true` and `false`, both `u8`. Each `true` input value emits 1 on `true`. Each `false` input value emits 1 on `false`.
* Runs -> on each new input value.

`select` has no parameters. Connect its outputs with an [output routing table](https://docs.synnaxlabs.com/reference/control/arc/reference/flow). Each entry is optional.

```arc
vlv_open -> select{} -> {
    true: 1 -> open_cmd,
    false: 1 -> close_cmd
}
```

For more than two outputs, write a function with named outputs. See [functions](https://docs.synnaxlabs.com/reference/control/arc/reference/functions). `select` works the same on the Core and on a Driver.
