Как стать автором
Обновить
16
0
Андрей @IIvana

Пользователь

Отправить сообщение
Там и остальные комиксы неплохие, но для некоторых надо хоть немного быть в курсе предмета :)
https://ro-che.info/ccc/25
ЗЫ это если вообще список хоть частично присутствует в памяти в вычисленном виде, а то Хаскель ленивый язык — пока не пнешь — не полетит вообще старается списки без нужды в памяти не разворачивать а при свертках по ним вообще все в цикл оптимизирует, воспринимая их не как структуру данных а как структуру управления потоком выполнения.
Да точно также — то есть абсолютно не так. Товарищу «кажется», и на основе своих фантазий он делает глубокомысленные выводы. Разумеется никто новый список не копирует, просто новый элемент за пару ассемблерных инструкций консится в голову существующему списку и хранятся 2 ссылки — на старую голову и на новую, и это понятно вообще всем — даже сишникам, не читавшим Криса Окасаки и не слышавшим про персистентные чисто функциональные структуры данных.
я узнал, что в одном университете на специальной программе обучения ИТ для людей с не-ИТ образованием (типа биологов или химиков) обучение начинают с диалекта Лиспа. И лично мне показалось, что это уже слишком и надо что-то с этим делать.
Помню, читал в комментах к прошлой статье, как знакомая автора коммента, уехавшая в Германию, жаловалась ему что их там бедных Лиспу учат и как это ретроградно и ужасно, прямо ах!.. А я почему-то сильно подозреваю, что речь идет о том самом MIT-овском курсе SICP на Scheme, о котором существует мнение (и я его разделяю), что это введение в специальность программиста как таковую. А «что-то с этим делать» совершенно не обязательно — деградация поколения селфи уже происходит и без вашей помощи.
А, вот оно оказывается как… Не моноиды в категории эндофункторов, не эндоморфизмы под композицией, не замыкания/продолжения/корутины, не комбинаторы неподвижной точки при нормальном и аппликативном порядке редукции и не море всего другого — а вызовы функций и адреса ячеек памяти — самые сложные темы!..
Размер еще увеличить раз в 10 (разбавить еще водой) и так же как и эту, вываливать целиком на главную страницу — чтобы пришлось еще дольше скроллить ваш спам.
Видел футуристическую картинку лохматых годов — небо будущего — все в дирижаблях, между ними веревки и на них белье плакаты :) Будущее зачастую отличается от наших ограниченных фантазий. Когда будем есть друг друга от тесноты и перенаселения, продавать выращенных в пробирке младенцев на органы, единое глобальное правительство, а потом звезда Полынь и гласы трубные…

ЗЫ а вообще, конечно, суметь несколько раз ошибится в «ться» за несколько абзацев — это надо умудрится…
Это нормально, если я выброшу исключение для строк, не кратных 2?

Имхо — красный флажок, особенно после приведенных примеров.
В смысле, зачем он не прекращает бессмысленную беготню по массиву после первого тру? Действительно, это стоит прокомментировать. Может, оператор "=" здесь перегружен и имеет кучу побочных эффектов?
Если заполнять пустой строкой, то потом все равно придется делать проверку — на пустоту строки, и выводить индекс. А у нас надо же без проверок :) Ну, кроме проверки на прекращение цикла — но ее и постановщик ограничений за проверку не считает. А так, я уже под впечатлением от обсуждения создал тему на одном форуме — с ограничениями без единого if, switch / case, тернарного оператора, любых циклов for, while, do, goto, foreach и прочих функциональных мапов, фолдов и фильтров (допустим, на С++) — решить эту задачку.
ЗЫ и похоже, ваш алгоритм как и у героя статьи, тоже эвристический :)
Example output:
… 6 ....
Вангую, что вам опять посыпятся минусы, но вместо этого я встречно предложу вам решить эту задачку вообще без проб, проверок и условий. Раз уж вы так настаиваете. Попробуйте честно решить (С).
алгоритм под спойлером :)
Заводим мутабельный массив, заполняем числами, потом пробегаемся по нему с 3 с шагом 3 — пишем в значение элемента физз, вторая пробежка — с 5 с шагом 5 — пишем базз, третья — с 15 с шагом 15 — пишем физзбазз.
Не, на самом деле герой статьи молодец :) За мой опыт устройства на работу меня тоже далеко не во все места брали, но как я потом радовался, что меня не взяли в те места! Если это реальная история, то все закончилось лучшим исходом — и для героя, и для компании :)
Правильно, что не взяли на работу — требовался детерминированный алгоритм, а не эвристика, которая в результате ошиблась :)
Спасибо, понравилась статья и вообще идея и ее развитие. Сам 1С-ник, но подключаться к проекту в качестве пользователя или контрибьютера не планирую — свои игрушки интереснее )
Не, ну а что — для вэб студии с 8 дюймовыми ЭЛТ-мониторами и колесными мышами на рабочих местах разработчиков все вполне логично.
Это зависит от главного — о чем и был первый комментарий к статье — либо мы рисуем кривую, либо функцию.
Все правильно, по 1/3 — см. первую картинку (там и в коде k=0.33 — это именно оно). А вторая картинка при k=1.9, для демонстрации красоты ) И чтобы показать, что этот коэффициент аналогичен коэффициенту натяжения в TCB-сплайне.
Навскидку выглядит правдоподобно, соглашусь насчет частного случая при линейной зависимости аргумента от параметра. Честно сказать, в метод предложенный в статье не вчитывался — чукча не читатель, чукча писатель, своих вариантов вагон — девать некуда )
function drawByCurves(ctx, points) {
  ctx.beginPath();
  ctx.setLineDash([]);
  ctx.moveTo(points[0].x, points[0].y);
  var dl = 0, k = 0.33;
  for (var i = 0; i < points.length - 2; i++) {
    var dr = (points[i+2].y - points[i].y) / 2 * k;
    ctx.bezierCurveTo(
    points[i].x+k*30, points[i].y+dl,    
    points[i+1].x-k*30, points[i+1].y-dr,
    points[i+1].x, points[i+1].y);
    dl = dr;
  }
  ctx.strokeStyle = 'blue';
  ctx.stroke();
}



Рулим коэффициентом k.

ЗЫ так можно и до NURBS с Кочанеками-Бартельсами дойти. Раз уж пошла такая… интерполяция )

Информация

В рейтинге
5 636-й
Откуда
Воронеж, Воронежская обл., Россия
Дата рождения
Зарегистрирован
Активность