
Иван
06.04.2017
22:39:01
И выкатить стектрейс на экран)

Shmelev
06.04.2017
22:39:13
можно было бы его перехватывать

Vladimir
06.04.2017
22:39:28
Как бы странно, сравнивать язык, в котором мейби есть из коробки с тем, в котором ни о монадах, ни об алгебраических ТД слыхом ни слыхивали =/

Shmelev
06.04.2017
22:39:28
можно вернуть none, например

Google

Иван
06.04.2017
22:40:14
Хорошо. Питон предлагает два решения: исключения и возврат none.

Vladimir
06.04.2017
22:41:21
Давайте тогда посмотрим (раз речь зашла о монадах), как в хаскелле будет выглядеть отправка N параллельных HTTP-запросов, замер времени ответа на них и вывод его на экран :)

Aldar
06.04.2017
22:41:45

Shmelev
06.04.2017
22:41:49
это будет забавно сравнить с async в питоне

Иван
06.04.2017
22:42:22
Он схавает какой-то мусор.

Aldar
06.04.2017
22:42:51

Shmelev
06.04.2017
22:42:53
какой-то none

Aldar
06.04.2017
22:43:09
как в питоне возвращать два значения? в тупл их положить наверное

Иван
06.04.2017
22:43:18
Давайте поссотрим теперь как это можно в хаскеле сделать.

Google

Aldar
06.04.2017
22:43:20
или что-то подобное

Иван
06.04.2017
22:43:38

Shmelev
06.04.2017
22:43:53
можно errno и сигналы какие-нибудь, а-ля C, но это неправильно

Aldar
06.04.2017
22:44:41
по питонячьи же исключение кинуть?

Shmelev
06.04.2017
22:44:50
ага

Иван
06.04.2017
22:45:37
mydiv : Int -> Int -> Maybe Int
mydiv x 0 = Nothing
mydiv x y = Just (x `div` y)
Эта функция возвращает не просто число, а специальный тип, оборачивающий его
Этот тип хранит либо число, либо пустое значение
Пустое значение - это Nothing, его иногда как отсутствие значения интерпретируют

Shmelev
06.04.2017
22:48:15
Чем оно принципиально отличается от None в данном случае?

Иван
06.04.2017
22:48:37
Сейчас расскажу)
Теперь если кто-то хочет получить результат из этого Maybe, он обязан проверить, деймтвительно ли результат там есть.
То есть, не Nothing ли там.
И если он этого не сделает. Программа просто не скомпилируется.
То есть, мы ловим эту ошибку без тестировпния и стектрейсов.
И ещё хаскель имеет специальную do-нотацию для облегчения работы с такими значениями, которая добавляет эти проверки за нас.

Aldar
06.04.2017
22:52:06
там фишка что можно комбинировать вычисления,
(>>=) : :Maybe a -> (a -> Maybe b) -> Maybe b
и так по цепочке

Shmelev
06.04.2017
22:52:26
в питоне многие такие вещи реализовать принципиально нельзя, т.к. он не компилируемый

Aldar
06.04.2017
22:52:36
если где то в цепочке будет Nothing, то и в конце будет Nothing

Google

Иван
06.04.2017
22:52:39
Именно это я и хотел показать чуть подробнее.

Shmelev
06.04.2017
22:53:01
Зато там есть возможности для лямбда-программирования с элементами ооп

Иван
06.04.2017
22:53:34
Да, но если вы попробуете типы хаскеля, вы можете перехотеть ООП)

Shmelev
06.04.2017
22:54:12
соединение данных и кода в одном месте не всегда естественная модель, да
но иногда она может быть удобнее

Иван
06.04.2017
22:55:02
В хаскель вложено множество академических исследовпний языков программирования. Люди уже лет 50 думают о том, как сделать хороший язык, о математике, которая нужна для этого.

Admin
ERROR: S client not available

Shmelev
06.04.2017
22:55:04
https://pastebin.com/kgHhVwHZ вот, кстати, пример с асинхронным ftp на питоне

Иван
06.04.2017
22:55:21
А в питон вложена только фантазия автора.

Shmelev
06.04.2017
22:56:19
питон очень прикладной и предназначен для быстрого решения практических задач
вплоть до того, что экономят буквы для увеличения скорости набора

Aldar
06.04.2017
22:56:35

Иван
06.04.2017
22:56:51
Если у вас есть готовые модули с функциями solve_my_task1, solve_my_task2, вам подойдёт любой язык)

Shmelev
06.04.2017
22:56:54
утиная типизация и безопасная работа с памятью для того же
основная функция питона - экономия времени кодера/инженера

Иван
06.04.2017
22:58:07
Вопрос в том, какой язык позволяет вам писать свою логику быстро, эффективно и без ошибок.

Shmelev
06.04.2017
22:58:40
питон не для своей логики, а для комбинирования чужих модулей в свой сценарий

Google

Иван
06.04.2017
22:59:59

Shmelev
06.04.2017
23:00:21
ну это после perl-а :-)

Aldar
06.04.2017
23:00:43
питон хороший язык, просто и удобный

Shmelev
06.04.2017
23:00:55
питон похож на литературный английский и несложен в освоении
и в отличие от перла, на нём нельзя писать по-разному

Aldar
06.04.2017
23:01:06
щас для анализа данных используется повсеместно, да и для веба

Shmelev
06.04.2017
23:01:12
вернее можно, но неудобно
perl быстрее, но сложнее в освоении и, да и изначально был разработан для обработки текста

Иван
06.04.2017
23:04:42
Мне программировпния на питоне стало казаться какой-то унылой механической рвботой. Не хочу тратить на такое своё время.