170 похожих чатов

Можно как-то заставить это работать без врапера вокруг функции? https://pastebin.com/2mgMAZsw

41 ответов

25 просмотров

Эти 6 строк можно было и так прислать..

Это точно either должно называться? Не Both?

В общем, мой личный мозг переполнился вследствии бесконечной рекурсии...

Aleksei Korolev
either

Можешь объяснить, что же ты хочешь, семантически, потому что, чтобы понять рекурсию, нужно понять рекурсию.

Aleksei-Korolev Автор вопроса
Ilya Zviagin
Можешь объяснить, что же ты хочешь, семантически, ...

функция может вернуть либо результат, либо функцию, которую можно использовать для того, чтобы в конце концов получить результат. https://pastebin.com/YwR3LFfe

Aleksei Korolev
функция может вернуть либо результат, либо функцию...

Но функция не может вернуть то или это. Только одно

Aleksei-Korolev Автор вопроса
Ilya Zviagin
Но функция не может вернуть то или это. Только одн...

в примере упрощенный api для either показан

Aleksei-Korolev Автор вопроса
Алиса Кассель-Королёва
посмотри std::variant

старый стандарт + проблема не в этом

Aleksei Korolev
функция может вернуть либо результат, либо функцию...

Наверное, это можно сделать за счёт folding of variadic templates of function

Aleksei-Korolev Автор вопроса
Ilya Zviagin
Не, ему нужны разные типы

не, вариант подходит, как замена either. но проблему с рекурсией не решает

Aleksei Korolev
в примере упрощенный api для either показан

Функция должна возвращать что-то определенное, не "одно или другое"

Aleksei Korolev
не, вариант подходит, как замена either. но пробле...

Твой то вариант из примера изначального тоже не должен работать.

Aleksei Korolev
не, вариант подходит, как замена either. но пробле...

Вы уверены, что предполагаете принятие решения о типе возвращаемого значения на этапе компиляции?

Aleksei-Korolev Автор вопроса
Sergey Anisimov
Вы уверены, что предполагаете принятие решения о т...

из примера очевино, что нет. решение в рантайме принимается от данных

Ilya Zviagin
Мы же про с++

а человек хочет тип из хаскеля

Aleksei Korolev
вай?

Ты его компилировал? Работает?

Aleksei Korolev
из примера очевино, что нет. решение в рантайме пр...

Тогда очевидно, что это невозможно, поскольку тип - абстракция уровня времени компиляции =)

Aleksei-Korolev Автор вопроса
Ilya Zviagin
Ты его компилировал? Работает?

ну так вопрос был про то КАК это завести без обертки вокруг функции. с оберткой оно заводится без проблем.

Aleksei-Korolev Автор вопроса
Ilya Zviagin
Ну, а это невозможно

что конкретно невозможно?

Aleksei Korolev
что конкретно невозможно?

Вывести тип (compile-time) исходя из данных (runtime). Причинность, увы.

Aleksei-Korolev Автор вопроса
Sergey Anisimov
Вывести тип (compile-time) исходя из данных (runti...

вы код читали? где там нужно выводить тип из данных? решение о нужно типе из имеющихся вариантов налдо принять в рантайме

Aleksei Korolev
что конкретно невозможно?

У функции должен быть определенный тип возврата, и он должен быть определен до этой функции. Вот лямбда - другое дело...

Алиса Кассель-Королёва
а, вот оно что

то есть проблема в том, что тип рекурсивный получается?

Aleksei-Korolev Автор вопроса
Aleksei-Korolev Автор вопроса
Ilya Zviagin
Я в общем подумаю ...

https://godbolt.org/z/h8x5593zr вот вариант с оберткой

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта