import { floor, random } from '../../../../alias';
import { Sequence } from '../../core';
import { compose } from '../../../../helper/compose';
compose(Sequence, class extends Sequence {
public static override random(): Sequence>]>
public static override random(gen: () => a): Sequence>]>
public static override random(as: a[]): Sequence>
public static override random(p: (() => number) | (() => a) | a[] = () => random()): Sequence>]> | Sequence> {
return typeof p === 'function'
? Sequence.from(new Sequence((_, cons) => cons(p(), _)))
: this.random().map(r => p[floor(r * p.length)]);
}
});