|
definition: |
select :: Values a -> (a, Values a) #ifdef __KICS2__ select (Values (x:xs)) = (x, Values xs) |
|
demand: |
argument 1 |
|
deterministic: |
deterministic operation |
|
documentation: |
Selects (indeterministically) some value in a multiset of values and returns the selected value and the remaining multiset of values. Thus, `select` has always at most one value, i.e., it is a deterministic operation. It fails if the value set is empty. **NOTE:** The usage of this operation is only safe (i.e., does not destroy completeness) if all values in the argument set are identical. |
|
failfree: |
<FAILING> |
|
indeterministic: |
referentially transparent operation |
|
infix: |
no fixity defined |
|
iotype: |
{({Values}) |-> {(,)}}
|
|
name: |
select |
|
precedence: |
no precedence defined |
|
result-values: |
{(,)}
|
|
signature: |
Values a -> (a, Values a) |
|
solution-complete: |
operation might suspend on free variables |
|
terminating: |
yes |
|
totally-defined: |
possibly non-reducible on same data term |