Я бы не сказал, что на тех же Go или C# решения настолько же элегантные как и на Хаскеле по вашей ссылке. Я думаю, что на Delphi получится примерно то же самое. Go так вообще многлословен. Ну ок, есть некоторые места, где специализированный Хаскель удобнее универсальных языков. Однако что-то массовости его применения не видно.
Типов и компиляции Питону очень не хватает. Я уже как-то писал по этому поводу: habr.com/ru/company/psb/blog/433434/#comment_19536944
Да, можно что-то пробовать внешнее (mypy) в своем коде, однако это в существующем коде это сделать довольно сложно: код уже написан и просто для того, что бы разобраться как раз вот часто типов и не хватает.
Простите, дальше не понимаю задачи. Увы, ничего подобного не встречалось за почти 20 лет. Больше не расскажу. Не знаю куда что должно уходить, какие данные есть откуда они, как фильтровать. Вообще ничего. Не компетентен в этой области. Работают с другими данными, другими библиотеками. Предполагаю, что TDictionary может помочь. Но не зная всего не хочу сочинять.
Да, это так. Администрация сайта может устанавливать вообще любые правила и этим ничьи права не нарушит.
Всё верно. Администрация вправе предъявлять любые требования в пределах закона. Вплоть до того, что присылать записанное три раза ку на видео за право использования (можно что и повеселее придумать, но ладно :)). Это ее право. Но право пользователей перестать пользоваться хабром. Что я с огромным удовольствием бы сделал. И думаю что вопрос только времени, когда появится нормальная альтернатива хабру. Будет ли он что-то менять или и тем более если не будет.
function TForm1.GetMessageAsync(var s: string): boolean;
begin
Result := True;
try
InputQuery('Input a message', '', s);
except
s := 'excepion occured';
end;
Sleep(1000);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
aTask: ITask;
s: string;
begin
aTask := TTask.Create (procedure ()
begin
while GetMessageAsync(s) do
ShowMessage(s);
end);
aTask.Start;
end;
Проверил — работает ок. Я больше правда общую концепцию асинхронности делал. Как тут писали — неважно откуда данные приходят и как их отображать. То вот так и работает. Дерево ID шников можно в GetMessageAsync добавить если нужно. Ну или доступ к базе, вебу etc. Таск работает пока GetMessageAsync'у есть что выбирать. Как только случился любого рода eof, тут же закачиваем TTask, вернув False из GetMessageAsync.
у хабра есть API, которое по запросу habr.com/api/comment_text/3 возвращает текст комментария по номеру (в данном примере — вернет текст третьего комментария).
Вам нужно в консоли вывести тексты этих комментариев с их идентификатором, нарисовав пседографикой полученное дерево
То есть проблема всё таки клиентская, не серверная? Ок, поищу как и что. Самому интересно.
Несколько комментариев
1. Мне категорически не нравится текущая система кармы на хабре.
2. Как бы не пытались меня подталкивать к написанию статей с помощью кармы, я этого никогда не сделаю. Хоть мне и есть о чем рассказать, так как в программировании я без малого 20 лет. У меня десятки тысяч коментов в телеграмме, тысячи на форумах, много здесь. Однако писать статьи — не мое совсем. Не хочу и не буду.
3. Я очень хотел бы найти адекватную замену хабру. Однако пока к моему глубокому сожалению ничего подобного в рунете не существует. Ближайший, vc.ru, мне не нравится подачей материала настолько, что я готов мирится с хабром, что пока и делаю.
Я почти уверен, что отхвачу или минус за этот коммент или в карму. Но как активный анти-кармадрочер я только за ) Если этот акк запилят (что уже бывало неоднократно), еще один подключу, не беда.
Вы хотите, ну, например, нарисовать выпадающий список комментариев.
Нарисовать дерево где, как и чем?
Есть функция GetCommentByIdAsync которая принимает CommentId и возвращает некий промис Async, который нужно заавейтить чтобы получить результат
Объясните, где у нас лежат данные, куда их нужно передавать и зачем их вообще нужно ожидать? Не вижу общей задачи за частными объяснениями реализации на языках.
ну или как в дельфи делается, я не в курсе, последний раз я там с потоками руками возился
'В коробке' есть PPL, существует несколько сторонних бесплатных библиотек (из крупных, давних и бесплатных — Omni) и компонент. Многопоточность и асинхронность уже достаточно хорошо проработана.
Увы я ни разу не делал асинхронного http клиента :) Не представляю, с какой стороны даже к задаче подойти. Что и как там приходит и уходит у вас — без понятия. С Delphi http(s) серверами то мы работаем давно и успешно. Опять же, Delphi всё таки больше бэк чем фронт в вебе. Задачи фронта (это же задача фронта?) полностью скрывают компоненты (существует несколько паков), я просто кидаю их на формы и оно работает там само. Реализация меня как-то мало беспокоит. Не знаю — устроит ли такой ответ, но я бы предпочел, что бы строк кода было не две, как у вас, а 0, как бывает в Делфи. Если это конечно тот случай.
Последствия от слежки сильно разные. Гугловская, хоть и мало приятная, однако почти наверняка останется без последствий. Майорская же, бывает, доходит до реальных сроков. Не считая других, более мелких возможных 'плюшек'.
Государство и предыдущие вызовы (от challenge) не смогло толком победить. А тут новые прилетают ) Но ничего. Мы за ценой не постоим (ц). Будут еще от 50 млрд потрачены.
Ещё есть аргумент, что из-за вибраций ветряка почва под ним становится менее пригодна для сельского хозяйства, и подземным животным приходится менять место обитания
Думаю, что это всё настолько мелочи по сравнению, например, с массовым вымиранием кораллов из-за изменения климата. Скорее всего при нашей жизни их уже не станет.
Утилизация подешевеет в случае массовости. Собственно — как и всё остальное.
А что не так с пропертями? Вроде прозрачно всё. Да и как-то я больше по коду — проперти записал и забыл. Я в них хорошо если 0.1% времени смотрю. Скорее меньше.
К слову — существую редакторы свойств, кому лень руками набирать. Свойства можно добавляють в один хоткей чаще всего (2 нажатия — хоткей + Enter).
Повторюсь: bloated сейчас максимально автоматизирован.
habr.com/ru/company/psb/blog/433434/#comment_19536944
Да, можно что-то пробовать внешнее (mypy) в своем коде, однако это в существующем коде это сделать довольно сложно: код уже написан и просто для того, что бы разобраться как раз вот часто типов и не хватает.
Проверил — работает ок. Я больше правда общую концепцию асинхронности делал. Как тут писали — неважно откуда данные приходят и как их отображать. То вот так и работает. Дерево ID шников можно в GetMessageAsync добавить если нужно. Ну или доступ к базе, вебу etc. Таск работает пока GetMessageAsync'у есть что выбирать. Как только случился любого рода eof, тут же закачиваем TTask, вернув False из GetMessageAsync.
docwiki.embarcadero.com/RADStudio/Rio/en/Using_TTask_from_the_Parallel_Programming_Library
В общем-то тоже в несколько строк кода. Может синтаксис слегка более размашистый из-за текущей реализации синтаксиса лямбд.
1. Мне категорически не нравится текущая система кармы на хабре.
2. Как бы не пытались меня подталкивать к написанию статей с помощью кармы, я этого никогда не сделаю. Хоть мне и есть о чем рассказать, так как в программировании я без малого 20 лет. У меня десятки тысяч коментов в телеграмме, тысячи на форумах, много здесь. Однако писать статьи — не мое совсем. Не хочу и не буду.
3. Я очень хотел бы найти адекватную замену хабру. Однако пока к моему глубокому сожалению ничего подобного в рунете не существует. Ближайший, vc.ru, мне не нравится подачей материала настолько, что я готов мирится с хабром, что пока и делаю.
Я почти уверен, что отхвачу или минус за этот коммент или в карму. Но как активный анти-кармадрочер я только за ) Если этот акк запилят (что уже бывало неоднократно), еще один подключу, не беда.
OK
Есть дерево где? База? Еще что-то?
Нарисовать дерево где, как и чем?
Объясните, где у нас лежат данные, куда их нужно передавать и зачем их вообще нужно ожидать? Не вижу общей задачи за частными объяснениями реализации на языках.
'В коробке' есть PPL, существует несколько сторонних бесплатных библиотек (из крупных, давних и бесплатных — Omni) и компонент. Многопоточность и асинхронность уже достаточно хорошо проработана.
Утилизация подешевеет в случае массовости. Собственно — как и всё остальное.
К слову — существую редакторы свойств, кому лень руками набирать. Свойства можно добавляють в один хоткей чаще всего (2 нажатия — хоткей + Enter).
Повторюсь: bloated сейчас максимально автоматизирован.