Эти 6 строк можно было и так прислать..
Это точно either должно называться? Не Both?
В общем, мой личный мозг переполнился вследствии бесконечной рекурсии...
Можешь объяснить, что же ты хочешь, семантически, потому что, чтобы понять рекурсию, нужно понять рекурсию.
функция может вернуть либо результат, либо функцию, которую можно использовать для того, чтобы в конце концов получить результат. https://pastebin.com/YwR3LFfe
Но функция не может вернуть то или это. Только одно
в примере упрощенный api для either показан
посмотри std::variant
старый стандарт + проблема не в этом
Наверное, это можно сделать за счёт folding of variadic templates of function
Не, ему нужны разные типы
не, вариант подходит, как замена either. но проблему с рекурсией не решает
Функция должна возвращать что-то определенное, не "одно или другое"
Haskell, Rust и прочие: ну да, ну да, пошёл я на хер
Твой то вариант из примера изначального тоже не должен работать.
Вы уверены, что предполагаете принятие решения о типе возвращаемого значения на этапе компиляции?
из примера очевино, что нет. решение в рантайме принимается от данных
а человек хочет тип из хаскеля
Ты его компилировал? Работает?
Тогда очевидно, что это невозможно, поскольку тип - абстракция уровня времени компиляции =)
и довольно удобный
ну так вопрос был про то КАК это завести без обертки вокруг функции. с оберткой оно заводится без проблем.
Я понял это, но с++ не хаскель
Ну, а это невозможно
что конкретно невозможно?
Вывести тип (compile-time) исходя из данных (runtime). Причинность, увы.
вариант же справляется
вы код читали? где там нужно выводить тип из данных? решение о нужно типе из имеющихся вариантов налдо принять в рантайме
У функции должен быть определенный тип возврата, и он должен быть определен до этой функции. Вот лямбда - другое дело...
А Вы - собственные сообщения? =)
https://gist.github.com/jvranish/784615
а тут просто вариант из двух
Нет, это другое
то есть проблема в том, что тип рекурсивный получается?
это оно и есть
Я в общем подумаю ...
https://godbolt.org/z/h8x5593zr вот вариант с оберткой
Обсуждают сегодня