Pull to refresh
15
0
Vladislav @int_index

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

Send message
Проголосовал-таки за «Parallel and Concurrent Programming in Haskell» чисто чтобы посмотреть, как на этот раз поиздеваются над терминологией, ибо там ее много. В целом считаю, что техническая литература годится только в оригинале.
Такие шутки неуместны хотя бы потому, что в такой же мере можно сказать и про кардиостимуляторы, однако можете заметить — никому не смешно.
В Facebook используется Хаскель для анализа больших массивов данных. Успешные компании, использующие ФП, есть даже в России, посмотрите на Селектел — у них тут на Хабре блог есть.
Нелепый аргумент из серии «если ты такой умный, чего ж ты такой бедный?» — между успехом компании и используемыми инструментами корелляция есть, но это далеко не единственный фактор.
Или пользовались когда-то раньше, или наслышаны. Мне вот беглого знакомтсва с PHP уже хватило, чтобы его ругать, и я даже не считаю это предвзятостью.
Go никак не может быть убийцей C++. Вот Rust и D — да, определенно, однако стабильности им обоим не хватает. И если для Rust еще простительно, релиза еще не было, то у D с этим совсем плохо. Еще в Rust радует, что бэкенд по умолчанию — LLVM.
Только Valve никак до трех не досчитаются.
Оправдали упадок стабильностью. Путин смотрит с одобрением.
Forth теперь функциональный язык программирования, а Smalltalk — не объектно-ориентированный? TELL ME MOAR.
Пункты меню с предлогов не начинать, говорите? Дизайнеры ВК смотрят на вас с недоумением. Я с недоумением смотрю на дизайнеров ВК, но что поделать? Досадно, когда такие крупные сайты страдают от таких примитивных ошибок.
Прав. Как минимум, на Хаскеле достаточно широко используются NoSQL-решения: acid-state.seize.it/
Вы становитесь функциональной элиткой и можете тешить свое ЧСВ

habrahabr.ru/post/190492/
Можете посмотреть, в каких категориях больше пакетов, и делать выводы: hackage.haskell.org/packages/
Kinds имеют такое же отношение к types, как types к values. То есть можно считать их типами типов, если это не слишком запутывает.

Разговор про kinds, и все на самом деле достаточно просто. Int и Double имеют kind *, что означает, что они являются типами данных сами по себе. А вот просто списка быть не может — может быть список из Int, список из Double, или список из списков из Double, и т. д., то есть он параметризуется другим типом, поэтому его kind — это * -> *. А вот функция (->) тоже не может быть сама по себе, она из некого типа в другой, поэтому она параметризуется двумя типами, так что ее kind — это * -> * -> *.

Интереснее то, что kind есть не только у типов, но и, например, классов типов. Функтор, например, параметризуется неким типов, kind которого * -> *, и мы получаем некий тип данных, но не совсем любой — про него известно, как минимум, что для него определна операция fmap, что в некотором смысле является ограничением (constraint), так что
Prelude> :k Functor
Functor :: (* -> *) -> Constraint
Потому что путаете types и kinds.
Prelude> :k []
[] :: * -> *
Ну встроили вы препроцессор в текстовый редактор. И как потом редактировать эту сгенерированную стену кода?
По некоторым данным, уже существует реализация на D. Неясно, что их останавливает.
сделать свой, универсальный

xkcd-стандарты.пнг
Да, что никаким образом не является аргументом, так как реальные последовательности команд процессору — задача оптимизирующего комиплятора (за исключением низкоуровенвых программ, вроде драйверов).
Что считать критерием серьезности? Доводилось работать над простенькими веб-сервисами и сетевой компьютерной игрой, но ничего серьезного.

Information

Rating
Does not participate
Location
Россия
Registered
Activity