Пишем контекстные менеджеры в python

Контекстный менеджер в python - это объект, определяющий, что должно быть сделано "До" и "После" тела with выражения. Чаще всего контекстные менеджеры используют для управления ресурсами, получение и освобождение. Тема хорошо объясняется на следующем, довольно распространённом, примере с функцией open.

Допустим, нам необходимо открыть, прочитать и закрыть файл. Причём закрытие файла должно быть гарантированным:

Читать далее…

Как передать отрицательное число в качестве параметра консольной программе erlang

Недавно писал консольную программу, принимающую в качестве аргументов два числа. Столкнулся с тем, что в Erlang не так очевидно и просто передать аргументом отрицательное число. Представим, что у нас есть программа prog, которая вызывается так: erl -noshell -s program 1 -2

В Erlang всё, что начинается с символа "-" рассматривается как флаг: Any argument starting with character - (hyphen) is interpreted as a flag http://erlang.org/doc/man/erl.html#exports

Читать далее…

Кириллица в erlang

На первый порах изучения Erlang может быть не очевидно, каким образом выводить кириллицу. В интернете в основном находил информацию о том, как это происходит в интерактивной оболочке erl. По крайней мере, мне быстро найти ответ не удалось.

Читать далее…