# choose [Built-ins](README.md) Canonical ID: `input.choose`. Nederlands: `kies`. Offers a bounded set of text choices and returns exactly the selected option string. Options must be unique by exact, case-sensitive comparison and cannot be blank. The result is not an index. There is no automatic translation of option text; choose your application wording explicitly. ## Signature ```text choose(prompt, options) ``` ## Arguments | Parameter | Type | Requirement | |---|---|---| | `prompt` | Text | Question displayed by the host. | | `options` | List | 1–100 unique, nonblank text options. | ## Return value `Text`. ## Example ```pliro # language: en let color = choose("Color?", ["red", "groen", "blue"]) clearCanvas(color) ``` The selected color fills the graphical scene; a console host still returns the selected text. ## Notes and common mistakes Use the function name for your source language. Its [canonical ID](../concepts/canonical-identity.md) is a shared documentation label; you do not type that ID as a call. Giving your own variable or function the same name can hide the built-in. Supply the documented [arguments](../concepts/parameters-and-arguments.md) and value types. Pliro reports mismatches when checking can detect them, or when the call runs. The selected host mediates input. Program replies are bounded to 64 KiB of valid [UTF-8](../concepts/utf-8.md); unavailable input produces E4010. Keyboard names and option strings are data and are not translated with source syntax. Completed prompts are cooperative checkpoints. ## Related entries [ask](ask.md) · [askNumber](askNumber.md) · [askYesNo](askYesNo.md) · [keyDown](keyDown.md) · [Programming guides](../guides/input.md) · [Host support](../guides/hosts.md) · [Calls and arguments](../syntax/calls.md)