Наконец-то! А то, бывает, найдёшь программу или библиотеку, в которой чего-то не хватает, хочешь послать пулл-реквест, а выясняется, что оно на гугл-коде и там встроенной возможности для этого нет. И багтрекер там был странный, без права редактировать свои сообщения. Наверное, самое полезное, что там было — это возможность загружать файлы.
We're proud to have Pebble fans in over 150 countries. We will ship Pebble Time worldwide, with the exception of Cuba, Myanmar/Burma, Iran, Sudan, Syria, and Russia. Please note that you may be responsible for duties, fees and taxes applicable to your region.
Определение нефункционального типа, я полагаю, можно ввести так.
Функциональный тип — это экспоненциал в категории Hask. Соответственно, нефункциональные типы составляют дополнение функциональных типов до всего класса объектов Hask, т. е. это все те объекты, которые не являются экспоненциалами.
В Haskell функции без параметров называются константными функциями, поскольку каждая из них всегда возвращает одно и то же значение.
Это неправильно. В Haskell нет функций без параметров. В сигнатуре функции (после всех возможных подстановок) всегда присутствует хотя бы одна стрелка; если это не так — то это не функция, это конкретное значение.
Странно. Не знаю как в других городах, но в Саратове для того, чтобы просто получить доступ к локальной сети, нужно обязательно подключиться к VPN на некоторое время, а этого без логина/пароля не сделаешь.
Браузерный чат убьёт скайп? Ну-ну… С хэнгаутсом-то регулярно проблемы, хотя он уже вон сколько времени развивается. А тут что-то новое, с нуля да ещё и с шифрованием…
Нет, к сожалению, непосредственно в sysvinit такого нет, хотя вроде бы есть сторонние утилиты для этого. Вообще он сейчас активно депрекейтится практически всеми основными дистрибутивами, но инерция пока что очень сильна, так что ничего удивительного, что соответствующие туториалы появляются снова и снова)
Мм, а как это связано с форматом скрипта? Я вижу здесь проблему, только если в этой ОС нету нормальной системы инициализации, но про это ничего во вводной сказано не было :)
С современными init-системами нет совершенно никакого смысла делать явный форк и вручную управлять локами, pid-файлами и логгированием. Достаточно написать скрипт, который будет запускаться и делать работу, выводя все свои действия в stdout, а управление жизненным циклом и логгирование поручить системе. В том же systemd достаточно написать простенький конфиг, но при этом ваша программа уменьшится раза в полтора.
К сожалению, для Rust пока нет IDE. Лично я пользуюсь Vim + подсветка синтаксиса. Для IntelliJ IDEA есть плагин, включающий подсветку, но не более того. Вероятно, в будущем это изменится.
Тк у раста 0 оверхед на типы, то я так понимаю этот код показывает чисто силу статического анализатора.
Не совсем. В этом месте используются как раз trait objects, для которых применяется динамическая диспетчеризация.
Show — это трейт, поэтому &Show — это т.н. fat pointer, структура из двух указателей: на сами данные и на таблицу виртуальных методов трейта. За счёт такого представления ссылки на объекты разных типов, реализующих один трейт, можно положить в один массив.
Безусловно, вы можете это сделать с данными, приходящими по сети, если они в вашей программе представлены типом, реализующим соответствующий трейт.
Весьма грустно, что к нам не доставляют :(
И скобки не нужны :)
Определение нефункционального типа, я полагаю, можно ввести так.
Функциональный тип — это экспоненциал в категории Hask. Соответственно, нефункциональные типы составляют дополнение функциональных типов до всего класса объектов Hask, т. е. это все те объекты, которые не являются экспоненциалами.
Это неправильно. В Haskell нет функций без параметров. В сигнатуре функции (после всех возможных подстановок) всегда присутствует хотя бы одна стрелка; если это не так — то это не функция, это конкретное значение.
ЕМНИП, около 10^{-10} метров, один ангстрем.
Не совсем. В этом месте используются как раз trait objects, для которых применяется динамическая диспетчеризация.
Show
— это трейт, поэтому&Show
— это т.н. fat pointer, структура из двух указателей: на сами данные и на таблицу виртуальных методов трейта. За счёт такого представления ссылки на объекты разных типов, реализующих один трейт, можно положить в один массив.Безусловно, вы можете это сделать с данными, приходящими по сети, если они в вашей программе представлены типом, реализующим соответствующий трейт.