|
|
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
а с двумя переменными? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 12:34 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
tchingizа с двумя переменными? с конечным числом переменных в общем виде - никак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 14:14 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Видел поддержку сопрограмм в спецификации на С-- (которая в виде pdf). Я так понял, что вся эта чехарда была только для того, чтобы Глазго Хаскель компилятор мог эффективно реализовать ФП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 18:35 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Ну и вроде бы потом GHC перешел на LLVM, значит и там подобное есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 18:37 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Siemargl, не, хаскелю вообще по барабану, в LLVM для них уже добавили какую-то свою модель вызова им и так хватает http://www.gamedev.ru/flame/forum/?id=184103 Скорее всего для того, что-бы вручную не писать конечные автоматы, ибо низкоуровневая конструкция или возможно за go гонятся, для эффективной реализации. геморно как-то на ассемблере переключатель писать, почти под каждую систему свой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 19:07 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Экспромтом. Если бы C++ поддерживал goto c динамической меткой, то со-программа с множественным входами могла бы выглядеть так: DemoFunc( params ..., Метка ) { goto Метка; Start1: ... ... Start2: ... ... StartXX: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 19:37 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Владимир2012Экспромтом. Если бы C++ поддерживал goto c динамической меткой, то со-программа с множественным входами могла бы выглядеть так: DemoFunc( params ..., Метка ) { goto Метка; Start1: ... ... Start2: ... ... StartXX:о боже Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 22:23 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
egorychо боже Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Ужас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 22:38 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Владимир2012Ужас!ты ведь сам этого хотел, товарищ )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2016, 00:00 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Пора реализовывать рекурсивный итератор. Пробую на Scala... под катом - эксперименты. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2016, 00:52 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
КМК это не совсем то что я хотел. Код: java 1. 2. 3. 4. 5. 6. 7. Настораживает наличие вызова .sort(). Если это генерация списка с сортировкой то я это и так могу сделать в С++/Java но весь цимес в том что я не хочу нигде хранить никаких списков. Мне нужен генератор который выдает самый первый элемент настолько быстро, насколько это возможно. Без промежуточных переливаний в массивы или списки. Мне нужен Stream. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2016, 09:45 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
egorychты ведь сам этого хотел, товарищ )) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2016, 12:32 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
Зачем тебе для этой задачи сопрограммы, если достаточно ленивых списков? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 14:53 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
fixxer, жесть, а в какой последовательности всё это вычисляется? точно "лениво"? проще CreateFiber и SwitchToFiber использовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 16:27 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)fixxer, жесть, а в какой последовательности всё это вычисляется? точно "лениво"? В той последовательности как написано, да, точно лениво. #::: оператор конкатенации ленивых списков, #:: оператор присоединения головы к списку. Оба оператора правоассоциативны. То есть читать так: Код: sql 1. Правая часть не вычислится пока не попросишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 17:53 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
fixxer, ну ... я-бы не стал противопоставлять один термин другому. Если вы хотите называть это ленивым списком - я не против. Я просто начал свои копания с уступчивого return и пришел к постановке вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 18:29 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)fixxer, жесть, а в какой последовательности всё это вычисляется? точно "лениво"? проще CreateFiber и SwitchToFiber использовать Я-бы не хотел не акцентировать внимание на Windows API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 18:33 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
maytonЯ-бы не хотел не акцентировать внимание на Windows API. ну тогда для С++ только буст, собственно он под виндой, наверное, и использует fiber-ы на асемблере писать под все архитектуры и ОС тоже не очень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 18:39 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)maytonЯ-бы не хотел не акцентировать внимание на Windows API. ну тогда для С++ только буст, собственно он под виндой, наверное, и использует fiber-ы на асемблере писать под все архитектуры и ОС тоже не очень Было-бы неплохо чтобы господин СтраусТруп подумал в этом направлении. Если такое реализовать невозможно в рамках language (вовлечение сущностей уровня kernel API в язык) то хотелось-бы видеть Note #... где такой вопрос хотя-бы рассматривался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 18:44 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
fixxerПравая часть не вычислится пока не попросишь. Спасибо. Я попробую ваш пример сегодня. Может это и будет мое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 18:45 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
mayton, ну собственно как-то как показал fixxer и разлагается любая рекурсия 1. нанизывается последовательность действий https://habrahabr.ru/post/153383/ 2. в компиляторе разлагается на комбинаторы, тут прямых линков дать не могу собственно в данном случае используются комбинатор пары \x.y.f = f x y и Y-комбинатор (комбинатор неподвижной точки) http://ru.wikibooks.nym.su/wiki/Комбинаторы_—_это_просто! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 18:53 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
maytonБыло-бы неплохо чтобы господин СтраусТруп подумал в этом направлении. Если такое реализовать невозможно в рамках language (вовлечение сущностей уровня kernel API в язык) то хотелось-бы видеть Note #... где такой вопрос хотя-бы рассматривался. Ну почему, с определёнными ограничениями можно, я же написал без прямой поддержки ОС (в Win64 только с исключениями глючит, но это просто я плохо знаю Win64 на уровне асма и материалов толковых нет как по Win32). Мне fiber не нравится тем, что он сам память выделяет и swich у него замудрёный - MS, как всегда, простую вещь сделала через одно место. PS: try-finally-except тоже в каждой ОС по разному реализуется, ничего - сделали же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 19:05 |
|
||
|
Тяпничная со-программа
|
|||
|---|---|---|---|
|
#18+
maytonkealon(Ruslan)пропущено... ну тогда для С++ только буст, собственно он под виндой, наверное, и использует fiber-ы на асемблере писать под все архитектуры и ОС тоже не очень Было-бы неплохо чтобы господин СтраусТруп подумал в этом направлении. Если такое реализовать невозможно в рамках language (вовлечение сущностей уровня kernel API в язык) то хотелось-бы видеть Note #... где такой вопрос хотя-бы рассматривался. Да полно: v1 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3650.pdf v1+ https://isocpp.org/files/papers/N3722.pdf v2 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4134.pdf v4 https://isocpp.org/files/papers/N4402.pdf Эксперементальная реализация в MSVS 2015 - кстати, с короткими понятными примерами: https://blogs.msdn.microsoft.com/vcblog/2014/11/12/resumable-functions-in-c/ #include <experimental/resumable> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 21:00 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39295185&tid=1340627]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 262ms |
| total: | 429ms |

| 0 / 0 |
