|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
в общем, никак не воткну как в джаве это нормально сделать.. не хочу использовать древний фор. есть класс который возвращает объект самого себя ну типа: something.attribute("A").then().attribute("B").then().attribute("c").closeWith("D"); причем something.attribute("A").then() возвращает объект класса Something а something.attribute("A") возвращает объект класса SomethingClosable есть list аттрибутов где хранятся эти A, B, C, D, E собссно вопрос как через стрим или что-то такое разложить это чтоб было так -- на входе массив (лист) с абцде, а на выходе объект что свыше, и обязательно с закрытием? окей, это вообще через стримы джавовские можно разложить или только фор или какая-нибудь рекурсия? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2020, 20:45 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT, Поток слов какой-то. Нарисуй кейс классы и сигнатуру метода ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2020, 20:49 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
Предположительно это - рекурсия - функциональшина - правила вывода Но нужно чтоб автор модульный тест нарисовал. С четким входом и выходом. Меньше слов. Больше кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2020, 22:49 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT не хочу использовать древний фор эхех.. не хочу учиться, хочу жениться ))) andreykaT something.attribute("A").then().attribute("B").then().attribute("c").closeWith("D"); это называется fluent interface , какое отношение вообще имеет к старому.. ладно-ладно, _древнему_ доброму фору? andreykaT собссно вопрос как через стрим или что-то такое разложить это чтоб было так -- на входе массив (лист) с абцде, а на выходе объект что свыше, и обязательно с закрытием? map/filter/collect? не? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 01:21 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT на входе массив (лист) с абцде, а на выходе объект что свыше, и обязательно с закрытием? окей, это вообще через стримы джавовские можно разложить или только фор или какая-нибудь рекурсия? Не истины ради, а флейма для. Сделал на Kotlin. Только не придумал, как "всунуть" "closeWith" :-) <:o) Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 08:47 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
hVostt andreykaT не хочу использовать древний фор эхех.. не хочу учиться, хочу жениться ))) andreykaT something.attribute("A").then().attribute("B").then().attribute("c").closeWith("D"); это называется fluent interface , какое отношение вообще имеет к старому.. ладно-ладно, _древнему_ доброму фору? andreykaT собссно вопрос как через стрим или что-то такое разложить это чтоб было так -- на входе массив (лист) с абцде, а на выходе объект что свыше, и обязательно с закрытием? map/filter/collect? не? да. ты прав. из списка должен сконструироваться объект построенный на классе имплементирующем флюентинтерфейс. самое банальное чего в джаве нет но вроде есть в листутилзах: на входе: List(1,3,5,6) а на выходе это: list.add(1).add(3).add(5).add(6).close() нужно сделать БЕЗ фора. через стримы коллекторы и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 18:03 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT hVostt пропущено... эхех.. не хочу учиться, хочу жениться ))) пропущено... это называется fluent interface , какое отношение вообще имеет к старому.. ладно-ладно, _древнему_ доброму фору? пропущено... map/filter/collect? не? да. ты прав. из списка должен сконструироваться объект построенный на классе имплементирующем флюентинтерфейс. самое банальное чего в джаве нет но вроде есть в листутилзах: на входе: List(1,3,5,6) а на выходе это: list.add(1).add(3).add(5).add(6).close() нужно сделать БЕЗ фора. через стримы коллекторы и т.п. fold чем не устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 18:05 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
в джавастримах искаропки есть фолд? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 20:02 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT в джавастримах искаропки есть фолд? Не знаю, должен быть какой нибудь reduce как минимум ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 20:07 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
редьюс это не фолд. он на выходе требует тип равный типу элемента стрима. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 22:05 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
я так подозреваю что коллект может быть похожим. но это не точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 22:08 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT редьюс это не фолд. он на выходе требует тип равный типу элемента стрима. В джавовских стримах есть оба (и с тем же типом, и с новым). По сути можно как-то так: Код: java 1. 2.
Если надо часто делать и с закрытием, то можно и свой коллектор бахнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2020, 22:21 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
блин. и как ты это делаешь? у меня продолжение... есть инпут: String a = "apple|banana+potato+carrot-tomato" происходит магия стримов и получается аутпут: f.bool().must("apple") .must("banana") .should("potato") .should("carrot") .mustNot("tomato") как сделать с фором индексом и кучей ифов вроде понятно. а как сделать по-человечески? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 22:26 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT как сделать с фором индексом и кучей ифов вроде понятно. А почему вы считаете, что это не по-человечески? На деле когда вагон абстракций затаскивают там, где нужен простой фор, получается какаха. И вёдры слёз, кому это поддерживать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 22:55 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
Мне кажется, форы как раз и нечитаемы. А разложить процесс на стримы с мапами флатмапами редусами и коллектами каунтами и тп вот это то что надо) но это мое мнение Как то так вышло что я наверное форов в проще написал меньше чем пальцев на двух руках ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 23:05 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
Если есть стремление к функциональщине, то можно посмотреть что-то типа такого. Но боюсь, на практике, для удобства сопровождения - циклы наше все. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 23:16 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
Задача как обычно описана в терминах юнца, первый раз покупающего презерватив. Но судя по тому что я понял, это обычный парсер, причем парсер с состоянием, поэтому если хочется оставаться функциональным то тут применяется монада State, но блин в java?? Серьезно? либо не выеб..ться и нагуглить любой способ реализации парсера, тот же рекурсивный спуск. Хотя если нет вложенности можно на обычном foldMap заимплементить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 01:18 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
используй goto, вместо устаревшего for'а ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 10:49 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
andreykaT Мне кажется, форы как раз и нечитаемы. А разложить процесс на стримы с мапами флатмапами редусами и коллектами каунтами и тп вот это то что надо) но это мое мнение Как то так вышло что я наверное форов в проще написал меньше чем пальцев на двух руках Сам решай. Ищи нишу))) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:16 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
Roman Mejtes используй goto, вместо устаревшего for'а ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2020, 11:16 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
Где-то нам лет 10 назад чел подогнал исходник "Пентамино". Где goto был очень даже кстати. Я отдельным челенджем подниму пятничный топик на тему рефакторинга этого кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 19:08 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
Roman Mejtes используй goto, вместо устаревшего for'а гото - это долбаные ивенты. особенно синхронные. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 20:52 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
goto - прекрасен. Без него не будет ассемблера. Но нам это уже неактуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 20:54 |
|
чот я туплю. как избавиться от фора.
|
|||
---|---|---|---|
#18+
SpringMan Если есть стремление к функциональщине, то можно посмотреть что-то типа такого. Но боюсь, на практике, для удобства сопровождения - циклы наше все. Код: 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.
спсибо, бро. ты единственный кто открыл мне глаза и сказал что редьюз это не только х,у->х+у ... |
|||
:
Нравится:
Не нравится:
|
|||
15.08.2020, 21:04 |
|
|
start [/forum/topic.php?fid=59&msg=39990095&tid=2120711]: |
0ms |
get settings: |
22ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
462ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 859ms |
0 / 0 |