Простая задача
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.42] |
|
|
Правила раздела:
| Страницы: (5) 1 2 [3] 4 5 все ( Перейти к последнему сообщению ) |
Простая задача
|
Сообщ.
#31
,
|
|
|
|
Цитата JoeUser @ Вобщем, я в теме , нароешь чего путного по "GUI + D" - маякни плс. Очень понравился язык! Почитал доки бегло - то, что доктор прописал! ![]() Есть мысль, что он уже умирает. А Rust видел? |
|
Сообщ.
#32
,
|
|
|
|
Маякнул, для гуи DlangUI работает. И демка с тетрисом заработала и DlangIDE написанная тем же автором на тойже либе тоже заработала. Этого недостаточно?
Добавлено Цитата D_KEY @ Заблуждаешься. Посмотри на активность коммьюнити, разработчиков библиотек, развития альтернативных компиляторов - LDC, GDC и SDC.Есть мысль, что он уже умирает. Нет, о D можно многое сказать, но только не то что он умирает. Скорее наоборот. |
|
Сообщ.
#33
,
|
|
|
|
Цитата D_KEY @ А Rust видел? Слышал, но не читал. Гляну на досуге. |
|
Сообщ.
#34
,
|
|
|
|
Цитата D_KEY @ Видел, интересно, но отсутствие серьезного метапрограммирования отбивает охоту. А Rust видел? ![]() |
|
Сообщ.
#35
,
|
|
|
|
Цитата D_KEY @ А Rust видел? Кстати, как там с поддержкой Android & iOS, ну и процов отличных от ia32? |
|
Сообщ.
#36
,
|
|
|
|
Цитата applegame @ Нет, о D можно многое сказать, но только не то что он умирает. Скорее наоборот. Хорошо, скажем иначе. Он все никак не может родиться. Уже 14 лет как. Добавлено Цитата applegame @ Цитата D_KEY @ Видел, интересно, но отсутствие серьезного метапрограммирования отбивает охоту.А Rust видел? ![]() У них там полноценные макросы вообще-то. Чего тебе еще нужно? Меня, например, отсутствие исключений напрягает больше. |
|
Сообщ.
#37
,
|
|
|
|
Цитата D_KEY @ Не знаю, что по твоему пониманию - родиться. По мне так оно уже взрослое. Хорошо, скажем иначе. Он все никак не может родиться. Уже 14 лет как. |
|
Сообщ.
#38
,
|
|
|
|
Цитата D_KEY @ Меня, например, отсутствие исключений напрягает больше. Меня тоже, но панику можно перехватывать на границе потоков - для некоторых случаев как замена сгодится. В условии требовалось получить "раму мыла мама", а не "умар алым амам". Вариант на расте: ![]() ![]() println!("{}", "мама мыла раму".split_whitespace().rev().collect::<Vec<_>>().connect(" ")); Немного коряво, знаю. Эффективнее было бы через fold, а не collect + connect, но так ещё многословнее. Вроде, connect для итераторов хотят сделать. Ну и оригинальная задача на расте: ![]() ![]() use std::io::BufRead; fn main() { let stdin = std::io::stdin(); let str: String = stdin.lock().lines().next().unwrap().ok().unwrap().to_string(); println!("{}", str.chars().max().unwrap().to_string().parse::<i32>().unwrap()); let mut num: i32 = str.parse().unwrap(); let summand: i32 = str.chars().map(|c| if c == '0' { '0' } else { '1' }).collect::<String>().parse().unwrap(); while num > summand { print!("{} ", summand); num -= summand; } while num > 0 { print!("1 "); num -= 1; } } |
|
Сообщ.
#39
,
|
|
|
|
Цитата DarkEld3r @ Косяк, да. В условии требовалось получить "раму мыла мама", а не "умар алым амам". ![]() Вот исправлено: http://dpaste.dzfl.pl/637bd988dc88 ![]() ![]() import std.stdio; import std.string; void main() { "мама мыла раму".split(" ").reverse.join(" ").writeln; } Добавлено Цитата DarkEld3r @ Ну вот как-то многословно, по сравнению с тем же D, перлом или питоном. А если сделают connect для итераторов (или таки пары итераторов, ака range?), то вот этого collect() в вектор не будет? Немного коряво, знаю. Эффективнее было бы через fold, а не collect + connect, но так ещё многословнее. Вроде, connect для итераторов хотят сделать. |
|
Сообщ.
#40
,
|
|
|
|
Цитата applegame @ Ну вот как-то многословно, по сравнению с тем же D, перлом или питоном. А если сделают connect для итераторов (или таки пары итераторов, ака range?), то вот этого collect() в вектор не будет? Да, collect пропадёт - он ещё многословно выглядит из-за необходимости указывать в какой контейнер собираем. Ну а без него будет практически как в D. Ну и нашёл уже стороннюю библиотеку с реализацией connect для итераторов, но решил, что "нечестно" использовать. В расте итераторы не плюсовые, то есть это не начало/конец, а начало + размер. Наверное, больше на range из D похожи. Если не в этом примере, а вообще, то немало многословности добавляют все эти unwrap. В такие моменты исключений особенно не хватает - даже если есть очень маленький шанс, что "что-то пойдёт не так" - в апи появляются Option/Result, чтобы дать обработать ошибку. Но имхо, это не всегда так страшно. |
|
Сообщ.
#41
,
|
|
|
|
Если так уж сильно хочется в одну строку...
![]() ![]() for (auto s : [](std::deque<std::string>&& d) { std::copy(std::istream_iterator<std::string>(std::istringstream("мама мыла раму") >> std::hex), std::istream_iterator<std::string>(), std::front_inserter(d)); return d; }(std::deque<std::string>())) std::cout << s << ' '; Добавлено То же самое, только не в одну строку. ![]() ![]() for (auto s : [](std::deque<std::string>&& d) { std::copy(std::istream_iterator<std::string>(std::istringstream("мама мыла раму") >> std::hex), // ввод фиктивный, чтобы кастануть r-value в l-value ссылку std::istream_iterator<std::string>(), std::front_inserter(d) ); return d; }(std::deque<std::string>()) ) std::cout << s << ' '; |
|
Сообщ.
#42
,
|
|
|
|
Блин, задача проста аки пять копеек, а кракозябров - в лучших традициях буста.
|
|
Сообщ.
#43
,
|
|
|
|
Цитата applegame @ Блин, задача проста аки пять копеек, а кракозябров - в лучших традициях буста. Не, на бусте будет как-то так(примерно) ![]() ![]() boost::copy("мама мыла раму" | boost::adaptors::tokenized(boost::regex("\\w+")) | boost::adaptors::reversed, std::ostream_itertor<std::string>(std::cout, " ")); |
|
Сообщ.
#44
,
|
|
|
|
На бусте неитересно. Эдак я и spirit подключу.
|
|
Сообщ.
#45
,
|
|
|
|
Да я в качестве защиты буста код привел
|