def sieve(*_coconut_match_to_args, **_coconut_match_to_kwargs):
        _coconut_match_check = False
        if (_coconut.len(_coconut_match_to_args)
                == 1) and (_coconut.isinstance(_coconut_match_to_args[0],
                                               _coconut.abc.Iterable)):
            xs = _coconut.iter(_coconut_match_to_args[0])
            _coconut_match_temp_0 = _coconut.tuple(
                _coconut_igetitem(xs, _coconut.slice(None, 1)))
            if (_coconut.len(_coconut_match_temp_0)
                    == 1) and (not _coconut_match_to_kwargs):
                x = _coconut_match_temp_0[0]
                _coconut_match_check = True
        if not _coconut_match_check:
            _coconut_match_err = _coconut_MatchError(
                "pattern-matching failed for "
                "'def sieve([x] :: xs) = [x] :: sieve(n for n in xs if n % x)'"
                " in " + _coconut.repr(_coconut.repr(_coconut_match_to_args)))
            _coconut_match_err.pattern = 'def sieve([x] :: xs) = [x] :: sieve(n for n in xs if n % x)'
            _coconut_match_err.value = _coconut_match_to_args
            raise _coconut_match_err

        return _coconut_tail_call(
            _coconut.itertools.chain.from_iterable,
            (f()
             for f in (lambda: [x], lambda: sieve((n for n in xs if n % x)))))
Beispiel #2
0
def quick_sort(l):
    """Sort the input iterator, using the quick sort algorithm, and without using any data until necessary."""
    _coconut_match_check = False
    _coconut_match_to = l
    if (_coconut.isinstance(_coconut_match_to, _coconut.abc.Iterable)):
        tail = _coconut.iter(_coconut_match_to)
        _coconut_match_iter_0 = _coconut.tuple(_coconut_igetitem(tail, _coconut.slice(None, 1)))
        if (_coconut.len(_coconut_match_iter_0) == 1):
            head = _coconut_match_iter_0[0]
            _coconut_match_check = True
    if _coconut_match_check:
        tail, tail_ = tee(tail)
        _coconut_yield_from = (_coconut.itertools.chain.from_iterable((_coconut_lazy_item() for _coconut_lazy_item in (lambda: quick_sort((x for x in tail if x < head)), lambda: (head,), lambda: quick_sort((x for x in tail_ if x >= head))))))
        for _coconut_yield_item in _coconut_yield_from:
            yield _coconut_yield_item
Beispiel #3
0
def quick_sort(l):
    """Sort the input iterator using the quick sort algorithm."""
    _coconut_match_to = l
    _coconut_match_check = False
    if _coconut.isinstance(_coconut_match_to, _coconut.abc.Iterable):
        tail = _coconut.iter(_coconut_match_to)
        _coconut_match_temp_0 = _coconut.tuple(_coconut_igetitem(tail, _coconut.slice(None, 1)))
        if _coconut.len(_coconut_match_temp_0) == 1:
            head = _coconut_match_temp_0[0]
            _coconut_match_check = True
    if _coconut_match_check:
        tail = reiterable(tail)
        left = (x for x in tail if x < head)
        right = (x for x in tail if x >= head)
# By yielding nothing if the match falls through, we implicitly return an empty iterator.

# Test cases:
        _coconut_yield_from = _coconut.itertools.chain.from_iterable((_coconut_func() for _coconut_func in (lambda: quick_sort(left), lambda: [head], lambda: quick_sort(right))))
        for _coconut_yield_item in _coconut_yield_from:
            yield _coconut_yield_item
Beispiel #4
0
def create_space(name, func, *args):
    """Create a hyperopt space for the given parameter."""
    _coconut_case_match_to_0 = func, args
    _coconut_case_match_check_0 = False
    _coconut_match_set_name_choices = _coconut_sentinel
    if _coconut.isinstance(_coconut_case_match_to_0, _coconut.abc.Iterable):
        _coconut_match_temp_0 = _coconut.tuple(_coconut_case_match_to_0)
        if (_coconut.len(_coconut_match_temp_0) == 2) and (_coconut_match_temp_0[0] == "choice") and (_coconut.isinstance(_coconut_match_temp_0[1], _coconut.abc.Sequence)) and (_coconut.len(_coconut_match_temp_0[1]) == 1):
            _coconut_match_set_name_choices = _coconut_match_temp_0[1][0]
            _coconut_case_match_check_0 = True
    if _coconut_case_match_check_0:
        if _coconut_match_set_name_choices is not _coconut_sentinel:
            choices = _coconut_match_set_name_choices
    if _coconut_case_match_check_0:
        return hp.choice(name, choices)
    if not _coconut_case_match_check_0:
        _coconut_match_set_name_start = _coconut_sentinel
        _coconut_match_set_name_stop = _coconut_sentinel
        _coconut_match_set_name_step = _coconut_sentinel
        if _coconut.isinstance(_coconut_case_match_to_0, _coconut.abc.Iterable):
            _coconut_match_temp_1 = _coconut.tuple(_coconut_case_match_to_0)
            if (_coconut.len(_coconut_match_temp_1) == 2) and (_coconut_match_temp_1[0] == "randrange") and (_coconut.isinstance(_coconut_match_temp_1[1], _coconut.abc.Sequence)) and (_coconut.len(_coconut_match_temp_1[1]) == 3):
                _coconut_match_set_name_start = _coconut_match_temp_1[1][0]
                _coconut_match_set_name_stop = _coconut_match_temp_1[1][1]
                _coconut_match_set_name_step = _coconut_match_temp_1[1][2]
                _coconut_case_match_check_0 = True
        if _coconut_case_match_check_0:
            if _coconut_match_set_name_start is not _coconut_sentinel:
                start = _coconut_match_set_name_start
            if _coconut_match_set_name_stop is not _coconut_sentinel:
                stop = _coconut_match_set_name_stop
            if _coconut_match_set_name_step is not _coconut_sentinel:
                step = _coconut_match_set_name_step
        if _coconut_case_match_check_0:
            if step != 1:
                raise ValueError("the hyperopt backend only supports a randrange step size of 1 (use bb.choice(name, range(start, stop, step)) instead)")
# despite being called randint, hp.randint is exclusive
            return start + hp.randint(name, stop - start)
    if not _coconut_case_match_check_0:
        _coconut_match_set_name_a = _coconut_sentinel
        _coconut_match_set_name_b = _coconut_sentinel
        if _coconut.isinstance(_coconut_case_match_to_0, _coconut.abc.Iterable):
            _coconut_match_temp_2 = _coconut.tuple(_coconut_case_match_to_0)
            if (_coconut.len(_coconut_match_temp_2) == 2) and (_coconut_match_temp_2[0] == "uniform") and (_coconut.isinstance(_coconut_match_temp_2[1], _coconut.abc.Sequence)) and (_coconut.len(_coconut_match_temp_2[1]) == 2):
                _coconut_match_set_name_a = _coconut_match_temp_2[1][0]
                _coconut_match_set_name_b = _coconut_match_temp_2[1][1]
                _coconut_case_match_check_0 = True
        if _coconut_case_match_check_0:
            if _coconut_match_set_name_a is not _coconut_sentinel:
                a = _coconut_match_set_name_a
            if _coconut_match_set_name_b is not _coconut_sentinel:
                b = _coconut_match_set_name_b
        if _coconut_case_match_check_0:
            return hp.uniform(name, a, b)
    if not _coconut_case_match_check_0:
        _coconut_match_set_name_mu = _coconut_sentinel
        _coconut_match_set_name_sigma = _coconut_sentinel
        if _coconut.isinstance(_coconut_case_match_to_0, _coconut.abc.Iterable):
            _coconut_match_temp_3 = _coconut.tuple(_coconut_case_match_to_0)
            if (_coconut.len(_coconut_match_temp_3) == 2) and (_coconut_match_temp_3[0] == "normalvariate") and (_coconut.isinstance(_coconut_match_temp_3[1], _coconut.abc.Sequence)) and (_coconut.len(_coconut_match_temp_3[1]) == 2):
                _coconut_match_set_name_mu = _coconut_match_temp_3[1][0]
                _coconut_match_set_name_sigma = _coconut_match_temp_3[1][1]
                _coconut_case_match_check_0 = True
        if _coconut_case_match_check_0:
            if _coconut_match_set_name_mu is not _coconut_sentinel:
                mu = _coconut_match_set_name_mu
            if _coconut_match_set_name_sigma is not _coconut_sentinel:
                sigma = _coconut_match_set_name_sigma
        if _coconut_case_match_check_0:
            return hp.normal(name, mu, sigma)
    raise TypeError("invalid parameter {_coconut_format_0}".format(_coconut_format_0=(name)))
Beispiel #5
0
def create_space(name, func, *args):
    """Create a scikit-optimize space for the given parameter."""
    name = py_str(name)
    _coconut_case_match_to_0 = func, args
    _coconut_case_match_check_0 = False
    _coconut_match_set_name_choices = _coconut_sentinel
    if _coconut.isinstance(_coconut_case_match_to_0, _coconut.abc.Iterable):
        _coconut_match_temp_0 = _coconut.tuple(_coconut_case_match_to_0)
        if (_coconut.len(_coconut_match_temp_0)
                == 2) and (_coconut_match_temp_0[0]
                           == "choice") and (_coconut.isinstance(
                               _coconut_match_temp_0[1],
                               _coconut.abc.Sequence)) and (_coconut.len(
                                   _coconut_match_temp_0[1]) == 1):
            _coconut_match_set_name_choices = _coconut_match_temp_0[1][0]
            _coconut_case_match_check_0 = True
    if _coconut_case_match_check_0:
        if _coconut_match_set_name_choices is not _coconut_sentinel:
            choices = _coconut_match_set_name_choices
    if _coconut_case_match_check_0:
        return Categorical(choices, name=name)
    if not _coconut_case_match_check_0:
        _coconut_match_set_name_start = _coconut_sentinel
        _coconut_match_set_name_stop = _coconut_sentinel
        _coconut_match_set_name_step = _coconut_sentinel
        if _coconut.isinstance(_coconut_case_match_to_0,
                               _coconut.abc.Iterable):
            _coconut_match_temp_1 = _coconut.tuple(_coconut_case_match_to_0)
            if (_coconut.len(_coconut_match_temp_1)
                    == 2) and (_coconut_match_temp_1[0]
                               == "randrange") and (_coconut.isinstance(
                                   _coconut_match_temp_1[1],
                                   _coconut.abc.Sequence)) and (_coconut.len(
                                       _coconut_match_temp_1[1]) == 3):
                _coconut_match_set_name_start = _coconut_match_temp_1[1][0]
                _coconut_match_set_name_stop = _coconut_match_temp_1[1][1]
                _coconut_match_set_name_step = _coconut_match_temp_1[1][2]
                _coconut_case_match_check_0 = True
        if _coconut_case_match_check_0:
            if _coconut_match_set_name_start is not _coconut_sentinel:
                start = _coconut_match_set_name_start
            if _coconut_match_set_name_stop is not _coconut_sentinel:
                stop = _coconut_match_set_name_stop
            if _coconut_match_set_name_step is not _coconut_sentinel:
                step = _coconut_match_set_name_step
        if _coconut_case_match_check_0:
            if step != 1:
                raise ValueError(
                    "the scikit-optimize backend only supports a randrange step size of 1"
                )
            stop -= 1  # scikit-optimize ranges are inclusive
            return Integer(start, stop, name=name)
    if not _coconut_case_match_check_0:
        _coconut_match_set_name_a = _coconut_sentinel
        _coconut_match_set_name_b = _coconut_sentinel
        if _coconut.isinstance(_coconut_case_match_to_0,
                               _coconut.abc.Iterable):
            _coconut_match_temp_2 = _coconut.tuple(_coconut_case_match_to_0)
            if (_coconut.len(_coconut_match_temp_2)
                    == 2) and (_coconut_match_temp_2[0]
                               == "uniform") and (_coconut.isinstance(
                                   _coconut_match_temp_2[1],
                                   _coconut.abc.Sequence)) and (_coconut.len(
                                       _coconut_match_temp_2[1]) == 2):
                _coconut_match_set_name_a = _coconut_match_temp_2[1][0]
                _coconut_match_set_name_b = _coconut_match_temp_2[1][1]
                _coconut_case_match_check_0 = True
        if _coconut_case_match_check_0:
            if _coconut_match_set_name_a is not _coconut_sentinel:
                a = _coconut_match_set_name_a
            if _coconut_match_set_name_b is not _coconut_sentinel:
                b = _coconut_match_set_name_b
        if _coconut_case_match_check_0:
            return Real(a, b, name=name)
    raise TypeError("invalid parameter {_coconut_format_0}".format(
        _coconut_format_0=(name)))