Erlang. Операторы. Atoms, Integers, Booleans.

Математические операторы

Тип Описание Тип данных
+ Сложение (addition) Integer | Float
Вычитание (substraction) Integer | Float
* Умножение (multiplication) Integer | Float
/ Деление с плавающей запятой (floating point division) Integer | Float
div Деление нацело (integer division) Integer
rem Остаток от деления (integer remainder) Integer

Примеры использования математических операторов в консоли erlang:

1> 1 + -1.
0
2> 2/3.
0.6666666666666666
3> 3 div 2.
1
4> 3 rem 2.
1

Атомы (константы)

Атомы это строковые константы типа: red, green, blue или enabled, disabled. Всегда должны начинатся с нижнего регистра (маленькой буквы) и могут включать в себя буквы, цифры, символы “@”, “_”, “.”. Например: testUser, test_user, test.user. В принципе для атомов можно использоват любые символы, если заключать их в одинарные кавычки: ‘Monday’, ‘not ready’, ‘node#1\nnode#2’

Integers (целые)

Определение целых работа с ними классическая:

1> 1.
1
2> 2+3.
5
3> 4-7.
-3

Booleans

Здесь тоже все более-менее привычно за исключением того что это не отдельный тип а просто обычный атом-константа. Вот несколько примеров, которые иллюстрируют особенности erlang:

1> 1==1.
true
2> 1>2.
false
3> a is_boolean(true).
true
5> is_boolean(2+3).
false
Оператор Описание
and Возвращает true если оба аргумента по отдельности вернут true
andalso Возвращает false если первый аргумент был false и не проверяет второй аргумент
or Возвращает true если любой аргумент был true
orelse Возвращает true если первый аргумент был true, без проверки второго элемента
xor Возвращает true если один из аргументов true, а другой false
not Возвращает true если аргумент был false, и наоборот

Comments

comments

6 comments On Erlang. Операторы. Atoms, Integers, Booleans.

  • Привет, ты уже решал какие-то реальные задачи на Erlang?
    Давно смотрел в его сторону, почитываю то тут то там, и вот решился покодить и интересно было бы взяться за реальную задачу, может не совсем реальную, но приблеженную к реальности.

  • Привет. До реальных задач дело еще не дошло. Кривая вхождения уж очень крутая. Эта часть про операторы самая простая, все что пойдет дальше, будет выпадать из привычных рамок императивных языков. Ну к слову, такая мелочь – переменных в языке нет совсем. Только константы.

  • Атомы это не константы. Это почти тоже самое что symbols в ruby.

  • Мне показалось что это что-то похожее на константы в php или define в C. Я с руби не так чтобы очень знаком, как впрочем и с эрлангом, но в чем разница между атомами и константами?

  • В общем случае, это неизменяемые строки. Атомы используются вместо чисел для обозначений, для повышения ясности кода. Единственная операция на атомах (она и самая эффективная) это сравнение. Атомы хранятся как ссылки в несколько байт в независимости от написанной длины атома. В отличие от строк (где сравнение происходит символ за символом), атомы сравниваются за один шаг. И константа в php хранит значение в памяти, атом же не имеет значения, он сам по себе обозначение.

  • Спасибо за разъяснение. Да, я так себе это и представлял, но с точки зрения языка это всеже константы (хотя и устроены они как цепочка байтов, что конечно быстрее в обработке чем посимвольное стравнение строк).

Leave a reply:

Site Footer

Sliding Sidebar

About Me

About Me

Для кого этот блог?

Для тех кого интересуют современные интернет технологи, IT бизнес, стартапы, менеджмент, контроль качества, личная эффективность, мотивация. Здесь я буду писать о том, что в первую очередь будет интересно мне, о проблемах и решениях. О том что пригодилось мне, и возможно будет интересно Вам.

Что заставило меня создать его?

Желание совершенствоваться. Достигать успеха. Находить людей со схожими проблемами и задачами, вместе искать выходы и решения.

Немного о себе.

Мой первый серьезный опыт в IT это работа над desktop приложениями в компании «Эксперт-Софт». У истоков её стояли несколько амбициозных и талантливых молодых людей, с огнем в глазах и желанием работать «как майкрософт». То чем мы там занимались вполне могли бы сегодня назвать «стартапом». Рук было откровенно мало, поэтому приходилось заниматься всем: кодированием на Delphi, написанием скриптов на VBA, дизайном, вёрсткой и поддержкой вебсайта, работой над рекламной полиграфией, проектированием интерфейсов и БД. Работы было много, но запал был велик, команда очень разношерстная, гармонично дополняя друг-друга в решении нетривиальных задач. Благодаря тому что пришлось попробовать многое, постепенно вырисовалось понимание того чем хочется заниматься, и как. Софтверным программированием я был сыт по горло. Массы проблем десктопного софта в вебе просто не было, по определению. Зато был четкий фокус на дизайне, юзабилити, скорости. Поэтому когда пришла пора уходить из «Эксперт-Софт», я без всякого сожаления стал искать работу как разработчик для web. Поскольку городишко у нас не очень большой, выбор был практически предопределен. Так я стал работать в «Оникс-Системз», где и продолжаю работать поныне. За время работы в компании я как разработчик принимал участие в работе над несколькими десятками проектов. Несколько десятков проектов было сделано мною как фрилансером. Самым большим проектом в котором я сыграл роль менеджера, считаю свою семью. Также довольно большой проект мы сейчас поднимаем с командой разработчиков (на данный момент команда состоит из четырех php разработчиков, одного flex кодера и тестировщика). Отсюда, большой интерес к современным практикам и методологиям, разным подходам в управлении командой, повышению эффективности и качества работы. По мере сил, вдохновения и свободного времени, я буду писать об этом.

Если у Вас возникли какие-то вопросы ко мне лично, буду рад если Вы свяжетесь со мной:

e-mail:
skype: denis.sheremetov
Старый сайт, с музычкой и флешом

Прочая онлайновая деятельность: