Pull to refresh

Comments 12

Коротко и по делу. Может это ближе к теме выражений, но я бы привел здесь и логические операции с сопоставлением типов, (равно и в точности равно, например), то есть 1 может не равняться 1.0 именно из-за типов данных. Ну и рекорды привел бы здесь же, хотя их можно запихнуть в отдельную статью. Было бы интересно поучаствовать в цикле статей. Если нужна помощь — пишите.
Может это ближе к теме выражений, но я бы привел здесь и логические операции с сопоставлением типов, (равно и в точности равно, например), то есть 1 может не равняться 1.0 именно из-за типов данных.

Про это было написано в первой главе.
Увидел после того, как написал, виноват:)
Одна универсальная функция возвращала бы атом, а не список, тогда пришлось бы на каждый тип определять отдельный стандартный атом, навроде true и false.
Думаю стоит статью актуализировать: добавить всякие is_map, binary_to_{integer,float}, integer_to_binary, float_to_binary.
Спасибо за замечание. После работы посмотрю.
Но Erlang решает эту проблему другим, более эффективным способом.


«Let it crash» — малость не о том :-)

А для решения этой проблемы в Erlang есть такие замечательные вещи, как xref и — в особенности — dialyzer. Т.е. динамическая (пусть и сильная) типизация «парируется» наличием мощного инструмента статического анализа.
Анализатор — это хорошо. Так же, на сколько я знаю, есть возможность добавить статичную типизацию. Я об этом напишу в отдельной статье. Пока я имею лишь небольшой опыт работы с этими инструментами. Поэтому не могу писать о них с полной свободой слова. Я в отпусте их поюзаю и тогда в главе 4.1 опишу их.
Чуть ниже, ошибся веткой. Так что, дополню за статическую типизацию тут…

Есть, например, ф-ция f([x|Y]) -> Y.

Тип возвращаемого параметра, вывести просто. А вот какой «тип», у аргумента?
Так же, на сколько я знаю, есть возможность добавить статичную типизацию.


Как вы себе это представляете?! Возможно вы говорите о type annotation. Это есть. И есть есть даже замечательный инструмент для этого — TypEr.

Но, все это к статической типизации это имеет слабое отношение.
Нет. Продолжения не будет. Книга, которая бралась за основу, была переведена на русский. Не выжу смысла продолжать и писать статьи, большая часть материала из которых уже есть на русском языке. Лучше проситайте эту книгу, там все очень доступно и понятно описано.
Sign up to leave a comment.

Articles