Pull to refresh
3
0.1

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

Send message
Раз уж на то пошло, то лучше ещё python2/python3 сразу указывать, потому что в разных дистрах всё ещё разная дефолтная версия.
Вообще-то, подобный код — идеал к которому стремятся хаскеллисты. Почти любой туториал по GADT начинается с чего-нибудь типа «давайте сделаем списки, для которых `head empty` валился бы на этапе компиляции». Если повникать в алгебраическую систему типов, потихоньку начинаешь понимать такие штуки. Зачем обрабатывать исключения в рантайме, если можно сделать неверный код просто некомпилируемым?
«Нет» — слишком категорично, я написал определение «для чего», а вы — «как», оба могут быть верными.
Не могли бы вы пояснить эту мысль?

В чистом (в смысле функционального программирования) FRP состояние передаётся в качестве ещё одного аргумента вместе с нашим горизонтальным временем. На выходе соответственно получаем ответ и изменённый state. Профит в том, что прошлое не задерживается в графе, что сильно упрощает последующую отладку.
А где-то в глубине — обычный event-loop, дёргающий FRP граф, когда срабатывает poll. Я бы это не называл «способ организации кода», всё-таки это про проектирование, а не про написание кода.
Такое же как и остальное перечисленное — это ещё один паттерн. В отличие от параллельного программирования, асинхронное требует всего один механизм на уровне системных вызовов — select, poll, epoll или ещё что. Все перечисленные неявно его используют, разница только на верхнем уровне.
Отвечая на сам вопрос: FRP — это stateless способ выбрать ответ на пришедший запрос в реальном времени.
В асинхронности ещё можно поговорить о ново-(старо-)модном Functional Reactive Programming. Более требовательный к дизайну, зато на разработке не будет боли с callback hell.

P.S. Таки конкурентность != парелеллизм. Это всё таки о целях, а не о реализации.
TorBrowser + FoxyProxy + i2p router. Всего-то прописать несколько правил. Я роутер вообще держу на vpn'ке, чтобы аптайм не терять.
http://nigma.ru/
Нигма живёт и не чахнет, особо редкие вещи в ней ищу потому что фильтры.
Кстати ещё классика — это google hacking (урлы, содержащие example.com, но не содержащие www.example.com, их иногда забывают в robots.txt поставить). И ещё мне как-то приходилось находить поддомен через comodo dns сервер, который не был зареган на 8.8.8.8 и 208.67.222.222.
Иногда да, а иногда там *.example.com. Насколько я понимаю поиск поддоменов всё равно сводится к пауку и/или перебору по словарю.
Задача 3: интересный факт, дроби n/7 имеют периоды (7-1) в десятичной записи и они получаются перестановкой цифр для разных n. Если не ошибаюсь, то же верно и для 17 с периодом (17-1). Короче, увлекающиеся подобной фигнёй решают эту задачу в уме.
Решение к последней дало верный ответ на маленьких числах, а на больших проверять уже и не нужно?
135^135 сильно не влазит в тип, по-хорошему надо либо подумать с карандашиком либо писать длинную арифметику. Питон в той же задачке даёт 16647.
Скорее по радужным таблицам. Если хэши без соли, то алгоритм уже не имеет значения, если для них кто-то составил достаточные таблицы.
Как только решите вопрос, в каком возрасте человек право на жизнь — пишите. Я имею в виду в возрасте с момента зачатия.
Или ещё — я повсюду разбрасываю свою ДНК, но не хочу, чтобы её изучали. Вообще. Но у меня редкий комплект из аутизма, альцгеймера, невосприимчивости к ВИЧ и ускоренной регенерации. Могут ли забрать пробы моей слюны во имя науки?
У людей разные формы шизофрении, от Джона Нэша, до полной невменяемости. Кого из них можно попилить во имя науки?
Или про персональные данные — я не хочу фигурировать в статистике. Какие данные обо мне можно добавить в отчёт?
pcall_wraps как я понимаю обёртывает функцию в
try:
    return (func(*args, **kwargs), None)
except Exception, e:
    return (e, None)

Для единообразной арифметики, это, пожалуй, сэкономит код, но если ты хочешь «деструктор», который бы освобождал ресурсы/закрывал дескрипторы и по-разному обрабатывал разные ошибки, то всё равно надо каждый писать что-то кастомное. В сетях и парсинге всякого текста приходится как раз таки «закрывать дескрипторы». И опять таки это 7 строчный декоратор, который не лень и самому написать.
примерно так:

class SocketContext:
    def __init__(self, addr, port):
        self.sock = socket.socket()
        self.sock.connect((addr, port))

    def __enter__(self):
        return self.sock

    def __exit__(self, type, value, tb):
        print_tb(tb)
        sock.close()
        return True

Это менеджер контекста, если далее
with SocketContext(«example.com», 80) as sock:
    # Do smth

Срабатывает __init__(«example.com», 80), затем __enter__ передаёт значение в sock (разумеется можно несколько, я в последний раз передавал функцию, чтобы получить замыкание), при ЛЮБОМ выходе (исключение, корректное завершение, return внутри блока) из контекста вызывается __exit__, если было исключение, то его можно обработать как tb, если __exit__ вернёт False, то вроде бросится исключение наружу.

Вспоминаем известный with open(name) as fin: — суть в том, что что бы мы не делали, файл будет закрыт после выхода из контекста.
Очень много «левых сдвигов», в итоге вкусные вещи лежит в той же библиотеке, что и примитивнейшие предикаты или коллекции, для которых есть collection. Ну то есть тебя не устроила стандартная либа, и ты написал свою, чтобы не ковыряться в collection? В таком случае, кто будет использовать твои коллекции?
Кроме того, заимствования из Go лежат рядом с заимствованиями из Haskell. pcall — интересно, но в одной библиотеке с дженериками? А вообще знающие люди пишут свой контекст «with as», если надо избежать множественных «try, except».
>«Как увидеть список программ, которые используют конкретный файл под Windows?» А под linux?

fuser, lsof | grep
12 ...
11

Information

Rating
3,635-th
Location
Россия
Registered
Activity