• Python – примеры идеального кода?

    Yoschi
    @Yoschi
    Вопрос хороший и наверное соберёт интересных примеров. Но на самом деле "красивое", "правильное" и "идеальное" решение - это совсем разные категории. Можно что-то классно хакнуть, но коллегам потом придётся в этом разбираться. Красиво, но неправильно. Можно написать скучнейшего кода, в котором всё ясно. Правильно, но некрасиво.
    А про идеальность вообще рассуждать без контекста невозможно. В разных коллективах разные понятия об этом. Например, кого то прёт от функционального стиля, а кто-то за одно только использование модулей functools и operator готов подвергнуть анафеме.
    Ответ написан
    Комментировать
  • Как упростить LISP?

    Yoschi
    @Yoschi
    (cons 1 2) => '(1 . 2)
    А список из двух элементов это (cons 1 (cons 2 nil))
    Так что, боюсь, без точечных пар вам не обойтись. Они имеют отношение не именно к "парам элементов", а к конструированию списковых ячейкеек. Попробуйте выполнить (cons 1 (cons 2 3)) и убедитесь.
    Кстати, упомянутый nil (ну и соответственно T) вам тоже понадобится.
    Обязательна возможность сравнения. Не исключаю, что вы её присовокупили к арифметическим функциям, но сравнение логических значений тоже дело совершенно необходимое.
    Ну и наконец необходима возможность отличать список от атома. Насколько помню, atomp либо consp обязательно включается в ядро лисп. Это вроде как не влияет на тьюринг-полноту, но реализовать это вне ядра, в виде функции с помощью примитивов не получится.
    Ответ написан
    2 комментария
  • Статистика преступлений на карте

    Yoschi
    @Yoschi
    Мне кажется статистика будет перекошенная. Окажется, например, что районы, в которых с интернетом лучше, более криминогенны, чем те, в которых у людей даже компьютеров нет: о)
    Всё таки цифры от официальных органов были бы более надёжны.
    Ответ написан
    2 комментария